window.top === window.selfは何をしているのか?

プロジェクトで「if (window.top === window.self) {…}」という条件式がでてはじめてみたので調べてみた。

これは、開いているページがiframeで読み込んだページを表示させているか判定することできる。

window.topは、最上位のコンテキスト(ウィンドウ)を返す。iframe要素を複数埋め込んでいる場合でも、一番上の親を取得することができる。

window.selfは、現在のウィンドウ自身を返す。

iframeがないページならwindow.selfは、window.topと等価になるためiframeのあるページかを判定することができる。

コメント