1. 7 ウェブページの読み込み
    1. 7.1 ブラウジングコンテキスト
      1. 7.1.1 ブラウジングコンテキストを作成する
      2. 7.1.2 関連するブラウジングコンテキスト
        1. 7.1.2.1 DOMで関連するブラウジングコンテキストをナビゲートする
      3. 7.1.3 ブラウジングコンテキスト名

7 Loading web pages

7.1 ブラウジングコンテキスト

ブラウジングコンテキストDocumentオブジェクトがユーザーに提示される環境である。

iframeを含むと同様に、ウェブブラウザーにおいてタブやウィンドウは通常、ブラウジングコンテキストを含む。

ブラウジングコンテキストは、対応するWindowProxyオブジェクトを持つ。

A browsing context has an opener browsing context, which is null or a browsing context. It is initially null.

A browsing context has a disowned boolean. 最初はfalseである。

A browsing context has an is closing boolean. 最初はfalseである。

The following example illustrates the various possibilities of a browsing context. It can be disowned, is closing, neither, or both.

// Neither disowned nor is closing:
const popup1 = window.open();

// Disowned, but not is closing:
const popup2 = window.open();
popup2.opener = null;

// Not disowned, but is closing:
const popup3 = window.open();
popup3.close();

// Disowned, is closing:
const popup4 = window.open();
popup4.opener = null;
popup4.close();

ブラウジングコンテキストは、ブラウジングコンテキストが提示されていた、している、またはするだろうDocumentオブジェクトを一覧表示するセッション履歴を持つ。A Document's browsing context is the browsing context whose session history contains the Document, if any such browsing context exists and has not been discarded, and null otherwise.

A Document does not necessarily have a non-null browsing context. 具体的には、データマイニングツールはブラウジングコンテキストをインスタンス化できないだろう。A Document created using an API such as createDocument() never has a non-null browsing context. 文書から削除されて以来、iframe要素で当初は作成されたDocumentは、そのブラウジングコンテキストが破棄されたので、関連付けられたブラウジングコンテキストを持たない。

A browsing context's active window is its WindowProxy object's [[Window]] internal slot value. A browsing context's active document is its active window's associated Document.

In general, there is a 1-to-1 mapping from the Window object to the Document object, as long as the Document object has a non-null browsing context. There is one exception. A Window can be reused for the presentation of a second Document in the same browsing context, such that the mapping is then 1-to-2. 交換が有効になっているブラウジングコンテキストが初期about:blank Documentから別のものにナビゲートしたとき、これは起こる。

7.1.1 ブラウジングコンテキストを作成する

To set the active document of a browsing context browsingContext to a Document object document, run these steps:

  1. Let window be document's relevant global object.

    Per this standard document can be created before window, which does not make much sense. See issue #2688.

  2. Set browsingContext's active window to window.

  3. Set window's associated Document to document.

  4. Set window's relevant settings object's execution ready flag.


A browsing context has an associated creator origin (null or returns an origin), creator URL (null or returns a URL), and creator base URL (null or returns a URL). These are all initially null.

7.1.2 関連するブラウジングコンテキスト

特定の要素(たとえば、iframe要素)は、ブラウジングコンテキストをさらにインスタンス化できる。この要素は、ブラウジングコンテキストコンテナと呼ばれる。

ブラウジングコンテキストコンテナは、ブラウジングコンテキストまたはnullのいずれとなる、ネストされたブラウジングコンテキストを持つ。It is initially null.

The container of a browsing context bc is the browsing context container whose nested browsing context is bc, or null if there is no such element.

Each browsing context bc has a container document, which is the result of running these steps:

  1. If bc's container is null, then return null.

  2. Return bc's container's node document.

    This is equal to bc's container's shadow-including root as bc's container has to be connected.

A browsing context child is said to be a child browsing context of another browsing context parent, if child's container document is non-null and child's container document's browsing context is parent.

A browsing context child is a document-tree child browsing context of parent if child is a child browsing context and child's container is in a document tree.

ブラウジングコンテキストchild親ブラウジングコンテキストを持ってもよい。もしそのようなブラウジングコンテキストが存在すれば、これは子ブラウジングコンテキストとしてchildを持つ一意なブラウジングコンテキストである。そうでなければ、ブラウジングコンテキストは、親ブラウジングコンテキストを持たない。

ブラウジングコンテキストAA子ブラウジングコンテキストであり、かつB祖先自身であるブラウジングコンテキストA'が存在する場合、またはブラウジングコンテキストAB親ブラウジングコンテキストである場合、ブラウジングコンテキストB祖先であると言われる。

A browsing context that has no parent browsing context is the top-level browsing context for itself and all of the browsing contexts for which it is an ancestor browsing context.

A top-level browsing context has an associated group (null or a browsing context group). It is initially null.

It is possible to create new browsing contexts that are related to a top-level browsing context while their container is null. Such browsing contexts are called auxiliary browsing contexts. Auxiliary browsing contexts are always top-level browsing contexts.

The transitive closure of parent browsing contexts for a browsing context that is a child browsing context gives the list of ancestor browsing contexts.

Document d子孫ブラウジングコンテキストのリストは、以下のアルゴリズムによって返される(順序の)リストである:

  1. Let list be an empty list.

  2. For each browsing context container container, whose nested browsing context is non-null and whose shadow-including root is d, in shadow-including tree order:

    1. Let nestedBC be container's nested browsing context.

    2. Append nestedBC to list.

    3. Extend list with the list of the descendant browsing contexts of nestedBC's active document.

  3. listを返す。

A Document d is said to be fully active when d's browsing context is non-null, d's browsing context's active document is d, and either d's browsing context is a top-level browsing context, or d's container document is fully active.

Because they are associated with an element, child browsing contexts are always tied to a specific Document in their parent browsing context. User agents must not allow the user to interact with child browsing contexts of elements that are in Documents that are not themselves fully active.

The following example illustrates the differences between active and fully active Document objects. Here a.html is loaded into a browser window, b-1.html starts out loaded into an iframe as shown, and b-2.html and c.html are omitted (they can simply be an empty document).

<!-- a.html -->
<!DOCTYPE html>
<html lang="en">
<title>Browsing context A</title>

<iframe src="b-1.html"></iframe>
<button onclick="frames[0].location.href = 'b-2.html'">Click me</button>

<!-- b-1.html -->
<!DOCTYPE html>
<html lang="en">
<title>Browsing context B</title>

<iframe src="c.html"></iframe>

At this point, the documents given by a.html, b-1.html, and c.html are all the active documents of their respective browsing contexts. They are also all fully active.

After clicking on the button, and thus loading a new Document from b-2.html into browsing context B, we have the following results:

For more explorations of the complexities involved here, especially as it impacts the session history, see A Model of Navigation History. [NAVMODEL]

A child browsing context can be put into a delaying load events mode. This is used when it is navigated, to delay the load event of its container before the new Document is created.

The document family of a browsing context consists of the union of all the Document objects in that browsing context's session history and the document families of all those Document objects. The document family of a Document object consists of the union of all the document families of the browsing contexts in the list of the descendant browsing contexts of the Document object.

The content document of a browsing context container container is the result of the following algorithm:

  1. If container's nested browsing context is null, then return null.

  2. Let context be container's nested browsing context.

  3. Let document be context's active document.

  4. If document's origin and container's node document's origin are not same origin-domain, then return null.

  5. Return document.

window . top

Window/top

Support in all current engines.

FirefoxYesSafariYesChromeYes
OperaYesEdgeYes
Edge (Legacy)12+Internet ExplorerYes
Firefox AndroidYesSafari iOSYesChrome AndroidYesWebView AndroidYesSamsung InternetYesOpera AndroidYes

トップレベルブラウジングコンテキストWindowProxyを返す。

window . opener [ = value ]

Returns the WindowProxy for the opener browsing context.

Returns null if there isn't one or if it has been set to null.

Can be set to null.

window . parent

Window/parent

Support in all current engines.

Firefox1+Safari1.3+Chrome1+
Opera3+Edge79+
Edge (Legacy)12+Internet Explorer9+
Firefox Android4+Safari iOS1+Chrome Android18+WebView Android1+Samsung Internet1.0+Opera Android10.1+

親ブラウジングコンテキストに対するWindowProxyを返す。

window . frameElement

Window/frameElement

Support in all current engines.

Firefox1+SafariYesChromeYes
OperaYesEdgeYes
Edge (Legacy)12+Internet ExplorerYes
Firefox AndroidYesSafari iOSYesChrome AndroidYesWebView AndroidYesSamsung InternetYesOpera AndroidYes

ブラウジングコンテキストコンテナElementを返す。

存在しない場合、クロスオリジンの状況でnullを返す。

7.1.3 ブラウジングコンテキスト名

ブラウジングコンテキストは、ブラウジングコンテキスト名を持つことができる。特に明記しない限り、それは空文字列である。

妥当なブラウジングコンテキスト名は、U+005F LOW LINE文字で始まらない少なくとも1文字をもつ任意の文字列である。(アンダースコアで始まる名前は、特別なキーワードのために予約されている。)

妥当なブラウジングコンテキスト名またはキーワードは、妥当なブラウジングコンテキスト名またはASCII大文字・小文字不区別_blank_self_parent、または_topの1つにマッチするいずれかとなる任意の文字列である。

これらの値は、以下の(非規範的な)テーブルで要約されるように、ページがサンドボックス化されるかどうかに基づいて異なる意味を持つ。この表において、"current"はリンクまたはスクリプト内にあるブラウジングコンテキストを意味し、"parent"はリンクまたはスクリプト内にあるいずれかの親ブラウジングコンテキストを意味し、"top"はリンクまたはスクリプトがあるいずれかのトップレベルブラウジングコンテキストを意味し、"new"はさまざまなユーザー設定とユーザーエージェントのポリシーに次第で、新しいトップレベルブラウジングコンテキストまたは補助ブラウジングコンテキストが作成されることを意味し、"none"は何も起こらないことを意味し、"maybe new"は"allow-popups"キーワードはまたsandbox属性で指定される場合(またはユーザーがサンドボックスを覆う場合)、"new"と同じであり、そうでなければ"none"と同じである。

キーワード普通の効果iframeでの効果
sandbox=""sandbox="allow-top-navigation"
リンクおよびフォーム送信に対して、何も指定しないcurrentcurrentcurrent
空文字列currentcurrentcurrent
_blanknewmaybe newmaybe new
_selfcurrentcurrentcurrent
親が存在しない場合の_parentcurrentcurrentcurrent
親がまたトップである場合の_parentparent/topnoneparent/top
存在するがトップでない場合の_parentparentnonenone
トップが現在である場合の_topcurrentcurrentcurrent
トップが現在でない場合の_toptopnonetop
名前が存在しないnewmaybe newmaybe new
名前が存在しかつ子孫であるspecified descendantspecified descendantspecified descendant
名前が存在し現在であるcurrentcurrentcurrent
名前が存在しかつトップとなる祖先であるspecified ancestornonespecified ancestor/top
名前が存在しかつトップでない祖先であるspecified ancestornonenone
他の名前が共通のトップとともに存在するspecifiednonenone
familiarかつある許可されたサンドボックス化されたナビゲーターである場合、異なるトップをもつ名前が存在するspecifiedspecifiedspecified
familiarだがある許可されたサンドボックス化されたナビゲーターでない場合、異なるトップをもつ名前が存在するspecifiednonenone
familiarでない、異なるトップをもつ名前が存在するnewmaybe newmaybe new

サンドボックス化されたブラウジングコンテキストの制限のほとんどは、他のアルゴリズムにより適用される。たとえば、下記で与えられるブラウジングコンテキスト名で与えられたをブラウジングコンテキストを選択するための規則でなく、ナビゲーションアルゴリズムとして。