JavaScriptのwindow.open()で開いた画面を常にActiveにする方法

今週はJavaScriptを沢山使う機会がありました。
その中でとても悩んだことが、親画面から子画面を開いて子画面が開いている間は親画面にフォーカスを当てないという作りを実現する方法でした。
もちろんwindow.showModalDialog()でもできるんですが、分けあって今回は使えませんでした。

なので以下のように実現したんですが、なかなか苦肉の策でした。。

【親画面のHTMLにて】
<script type='text/javascript'>
 var subWin = window.open('URL','Window名','options');

 function chkWin(){
  if(subWin!=null && subWin!=''){
   if(!subWin.closed){
    subWin.focus();
   }
  }
 }
のような。。。

上記の「chkWin()」をbodyタグのonFocus属性に埋め込めば完成です。

やってることは、親画面にフォーカスが当たった場合にも、子画面がある場合には、子画面にフォーカスを当てるということです。

こんなのも出来るんだと感じた今週でした。