▼ 以下は古い記事です
window.open だけで言えば、開いた元のウインドウの click イベントで、window.open で開いたウインドウにフォーカスを移せないです。IE、Firefox、Chrome では正常に動きます。
そもそも、Opera だけが showModalDialog に対応しておらず、その代替え策としてのコードを書いてテストしたら見事に裏切られました。
実行したのは以下のようなコードで、window.open されたほうから opener に半透明な div で使用不可能にして、その div をクリックしたら、フォーカス移動しています。
var win = window.opener; // ページ全体を覆う DIV の作成 win.ds = win.document.createElement('div'); win.ds.setAttribute('id','ds') win.ds.style.position='absolute'; win.ds.style.width='100%'; win.ds.style.height=win.document.getElementsByTagName("HTML")[0].scrollHeight+200+'px'; win.ds.style.left='0px'; win.ds.style.top='0px'; // IE8 までは、opacity プロパティが使えないようです var userAgent = window.navigator.userAgent.toLowerCase(); if (userAgent.indexOf("msie") > -1) { win.ds.style.display = 'none'; win.ds.style.backgroundColor = '#000000'; win.ds.style.filter='alpha(opacity=50)'; } else { win.ds.style.backgroundColor = '#000000'; win.ds.style.opacity=.5; } // ページの最後に追加 win.document.body.appendChild(win.ds); // IEのみ後表示 if (userAgent.indexOf("msie") > -1) { win.ds.style.display = ''; } win.ds.onclick= function(){try{window.focus();}catch(e){}}
しかし、問題はそれだけでは無く、Opera で window.open したほうのwindow を先に閉じると、開かれたウインドウが最後のウインドウになってしまって、次からそのウインドウでしか Opera が開きません。 そうすると、一般ユーザではどうにもできない状態になってしまうわけで・・・ 正しい修復方法はそもそも解りませんが、operaprefs.ini を保存しておいて、Opera を終了させているあいだに operaprefs.ini を削除してやると、次の起動で Opera は初期化されます。 で、既存の保存していた設定を再び operaprefs.ini に上書きすると元に戻ります
|
【WEBブラウザの最新記事】
- CSS の @media screen と IFRAME を使用して PC コンテンツとスマホページを完全に別作成して切り替える
- WEB ブラウザで WEBカメラから静止画像を canvas へ転送して、その画像をローカルへ保存するテンプレート
- WEB ブラウザで WEBカメラをテストするテンプレート / Android Chrome でテストすると【今は】カメラの front と back を切り替えできます
- iPhone を EpocCam というアプリで Wi-Fi の WEBカメラにする場合のいろいろ知っておく事。
- ブラウザ別『Java 無効』
- IE、Firefox、Chrome、Opera、Safari で JavaScript を無効にする
- ブラウザの入力履歴の削除( 特にパスワード )
- IE、Firefox、Chrome、Opera、Safari のキャッシュ削除のショートカット
- ブラウザを使用した簡易パーセントエンコーディング変換
- 各ブラウザで、onbeforeunload を使おうとすると
- 2014年7月7日現在。WEBフォントの実際
- IE の占める割合の変遷と IE8 でないと動かないシステムの現実
- Flash Playerに危険な脆弱性( またかというかこっちもか )。13.0.0.206 である事を確認しましょう。
- デベロッパーツールを使用してクッキーの一覧を表示する
- Seesaa ブログの『保存ボタンが表示されない』
- Firefox のみのレイアウトトラブル / float:left と line-height
- ブラウザ毎の「開発者ツール」の起動と知っておくべき要点
- ブラウザ別『ソース』の表示
- 各ブラウザの現在の「document.charset」と「document.characterSet」
- Favicon の動的変更・または追加( IE8、Firefox、Chrome、Opera、Safari )