8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Javascript]iframeによって読み込まれているか判別する方法

Posted at

##はじめに
自分がiframeによって読み込まれているときだけ行いたい処理があったので、iframeによって読み込まれているかどうかを判別する方法を調べました。
自分用の備忘録も兼ねてまとめます。

##結論
初めに結論です。

window != window.parent

で判別できます。
trueならiframeによって読み込まれているということになります。

##解説
簡単に解説を書きます。

まず、iframeについてMDNに書かれていることをまとめると次のようになります。

  • iFrameは閲覧コンテキスト(browsing context)を表現する
  • 閲覧コンテキストは、セッション履歴(History)と文書(Document)をもつ
  • 他の閲覧コンテキストを埋め込んでる閲覧コンテキストは親閲覧コンテキストと呼ばれる
  • 最上位の閲覧コンテキストは、Windowオブジェクトで表される

image.png

つまり、
iFrameによって読み込まれている時、window.parentはiframeの親閲覧コンテキストになるので、windowにはなりません。

間違いや指摘があれば、コメントにお願いします。

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?