こんにちは
起こったこと
window.openerがnullかどうかで、
ページ遷移か、別タブとして開かれたかをチェックしようとしていたのですが
とあるサイトで、通常のページ遷移なのにもかかわらずwindow.openerに値が入っていることがありました。
詳細は下記の通りになります。
- サイトを訪問し、ページAを表示
⇒ window.openerはnull
- サイト内リンクをクリックして同一タブのままページBへ遷移される(同一ドメイン)
⇒ window.openerからページBでグローバルにセットしている変数が参照できる
親ウィンドウとして、自身をセットしているかのように見えます。(ざっと見、そういう記述は見つけてませんが・・・)
知りたいこと
同一ドメイン内で、別タブでリンクが開かれた場合にのみ
親ウィンドウとして元ページの情報がwindow.openerにセットされ、
子ウィンドウから参照できる。
というものかと思っておりましたが、
自身のグローバル変数がwindow.openerにセットされることはあるのでしょうか?
(※ 故意に「window.opener = window」としている場合を除いて)
故意に「window.opener = window」した場合、利点はあるのでしょうか?
何かご存知の方がおりましたら、ご教授願います。
あなたの回答
tips
プレビュー