はじめに
アプリでリンク先の画像を開くとタブで開かれてしまうから、プログラム(JavaScript)で制御して常に新しいウィンドウで開かれるようにしてほしいとの依頼があったので、やり方を調べた
なお、リンク先の画像を開く処理はJavaScriptのwindow.open
を利用している
環境
- ブラウザはInternet Explorer 11(11.590.17134.0)
- アプリはBtoBのwebアプリケーション
- OSはWindows10
調査
ネットサーフィンした
- 上記のMDNのドキュメントを読んだが新しいウィンドウを開く際に、タブで開くかウィンドウで開くかを設定するオプションはなさそう
どのようにリンクを開くかは、常に、完全にユーザの管理下にあるべきです
ブラウザの表示方法についてはユーザー自身が設定するべきであって、開発者が強制するべきではないみたいな思想を感じる
javascript - window.open opening new tab instead of new window in IE 11 - Stack Overflow
- ブラウザの方で設定するしかないんじゃない?みたいな回答
javascriptのwindow.open()で別窓が開かれない|teratail
window.open()
のオプション引数であるwindowFeatures
のtoolbar
なりmenubar
の設定を工夫すれば新規タブではなく新規ウィンドウで開いたとのことwindowFeatures
に開かれるウィンドウをタブかウィンドウか直接制御するプロパティがない以上、上記サイトで紹介されている方法が不安定なものである(ブラウザの設定、マイナーバージョンによって左右されうる)認識
調査結果
JavaScript(window.open()
)で制御するのではなく、ユーザ(クライアント)にブラウザの設定を変更していただいたほうが確実ではないか
ブラウザ設定方法
IE11の設定ボタンをクリック
インターネットオプションを選択
全般タブを選択
[タブ]ボタンをクリック
ポップアップの発生時:
で「常に新しいウィンドウでポップアップを開く」を選択
上記の設定でwindow.open()
で開かれるウィンドウがタブではなく新規のウィンドウになる