Window.top - 最上位のコンテキスト
topは、Windowのプロパティです。最上位のコンテキスト(ウィンドウ)を返します。例えば、iframe要素などで、AにBを、BにCを、CにDを、というように入れ子構造で埋め込み表示している場合、A、B、C、Dの最上位ウィンドウはAとなります。自分自身が最上位の場合は、自分自身が返ります。同一オリジンポリシーに違反している場合、エラーが発生します。
概要
- 名前
- top
- 所属
- Window
- IDL
[Unforgeable] readonly attribute WindowProxy? top;
- 仕様書
- https://html.spec.whatwg.org/multipage/browsers.html#dom-top
説明
最上位のコンテキストをWIndowで返す。別オリジンの場合、エラーとなる。
デモ
Window.topのデモです。この最上位ウィンドウのnameには"SYNCER"という値を代入しています。入れ子にしたiframe要素の各ウィンドウから、topでこの最上位ウィンドウを参照できていることを確認して下さい。
<!DOCTYPE html>
<html>
<head>
<style>
body { word-break: break-all ; }
iframe {
width: 90% ;
height: 300px ;
}
</style>
</head>
<body>
<p>最上位のWindow.nameは<span id="name"></span>です。</p>
<iframe src="./1.html"></iframe>
<hr>
<div id="result"></div>
<script>
name = "SYNCER" ;
console.log( top ) ;
document.getElementById( "name" ).textContent = top.name ;
</script>
</body>
</html>
最上位のWindow.nameはです。
サポート状況
Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|
● | ● | ● | ● | ● | ● | ● | ● |
関連記事
- Window.frameElement
- frameElementは、Windowのプロパティです。自身を開いている元のフレーム要素を返します。例えば、Aがiframe要素でBを開いている場合、BのframeElementはAのiframe要素です。
- Window.location
- locationは、Windowのプロパティです。Locationを返します。
- Document.getElementsByClassName()
- getElementsByClassName()は、Documentのメソッドです。class属性を指定して要素を取得します。
- Window.frames
- framesは、Windowのプロパティです。自分自身を含めた全てのフレームのウィンドウを返します。iframe要素などで開いた別のウィンドウはメインのフレームに対して、サブフレームと呼びます。