この翻訳は不完全です。英語から この記事を翻訳 してください。

ナビゲーションのいろいろな段階でイベントリスナーを追加します。ナビゲーションにはある URL から他に移動するブラウザーフレームにより成り立っていて、それは(いつもではなく)通常はリンクのクリックやロケーションバーへの URL 入力といったユーザー操作の応答として発生します。

webRequest API と比較して: ナビゲーションは通常、ブラウザーにウェブリクエストを発生させますが、webRequest API は HTTP 層からの低レベルな観点に関心を持っており、一方で webNavigation API はブラウザー UI 自身に対して、より関心を持っています。

それぞれのイベントはナビゲーションの特定のステージに対応しています。イベントシーケンスは次の通りです:

それぞれのナビゲーションは特定のブラウザーフレーム内の URL の遷移です。ブラウザーフレームはタブ ID とフレーム ID で識別されます。フレームはタブ内の再上位のブラウジングコンテキストである場合や、iframe として実装されたネストされたブラウジングコンテキストである場合があります。

それぞれのイベントの addListener() の呼び出しはオプションの filter パラメーターを受け入れます。filter は1つ以上の URL パターンを指定し、イベントはターゲット URL がパターンにマッチしたナビゲーションの時だけに発火します。

onCommitted イベントリスナーには2つの追加プロパティが渡されます: ナビゲーションの原因 (例えばユーザーがリンクをクリックしたり、ユーザーがブックマークを選んだり) を示すTransitionType と、ナビゲーションの詳細情報を提供するTransitionQualifier です。

この API を使うには"webNavigation" パーミッションが必要です。

webNavigation.TransitionType
Cause of the navigation: 例えば、 the user clicked a link, or typed an address, or clicked a bookmark.
webNavigation.TransitionQualifier
Extra information about a transition.

関数

webNavigation.getFrame()
Retrieves information about a particular frame. A frame may be the top-level frame in a tab or a nested iframe, and is uniquely identified by a tab ID and a frame ID.
webNavigation.getAllFrames()

Given a tab ID, retrieves information about all the frames it contains.

イベント

webNavigation.onBeforeNavigate

Fired when the browser is about to start a navigation event.

webNavigation.onCommitted
Fired when a navigation is committed. At least part of the new document has been received from the server and the browser has decided to switch to the new document.
webNavigation.onDOMContentLoaded
Fired when the DOMContentLoaded event is fired in the page.
webNavigation.onCompleted
Fired when a document, including the resources it refers to, is completely loaded and initialized. This is equivalent to the DOM load event.
webNavigation.onErrorOccurred
Fired when an error occurs and the navigation is aborted. This can happen if either a network error occurred, or the user aborted the navigation.
webNavigation.onCreatedNavigationTarget
Fired when a new window, or a new tab in an existing window, is created to host a navigation: for example, if the user opens a link in a new tab.
webNavigation.onReferenceFragmentUpdated
Fired if the fragment identifier for a page is changed.
webNavigation.onTabReplaced

Fired when the contents of the tab is replaced by a different (usually previously pre-rendered) tab.

webNavigation.onHistoryStateUpdated
Fired when the page used the history API to update the URL displayed in the browser's location bar.

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxOperaAndroid 版 Firefox
TransitionQualifierChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 48
補足
完全対応 48
補足
補足 'server_redirect' is limited to top-level frames and 'client_redirect' is not supplied when redirections are created by JavaScript.
Opera 完全対応 17Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 'server_redirect' is limited to top-level frames and 'client_redirect' is not supplied when redirections are created by JavaScript.
TransitionTypeChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 48
補足
完全対応 48
補足
補足 'link' and 'auto_subframe' are partially supported as the default transition type for top-level frames and subframes respectively. 'reload' and 'form_submit' are supported. All other properties are unsupported.
Opera 完全対応 17Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 'link' and 'auto_subframe' are partially supported as the default transition type for top-level frames and subframes respectively. 'reload' and 'form_submit' are supported. All other properties are unsupported.
getAllFramesChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 47Opera 完全対応 17Firefox Android 完全対応 48
getFrameChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 47Opera 完全対応 17Firefox Android 完全対応 48
onBeforeNavigateChrome 完全対応 あり
補足
完全対応 あり
補足
補足 If the filter parameter is empty, Chrome matches all URLs.
Edge 完全対応 14
補足
完全対応 14
補足
補足 Filtering is not supported.
Firefox 完全対応 45
補足
完全対応 45
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
Opera 完全対応 17
補足
完全対応 17
補足
補足 If the filter parameter is empty, Opera matches all URLs.
Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
onCommittedChrome 完全対応 あり
補足
完全対応 あり
補足
補足 If the filter parameter is empty, Chrome matches all URLs.
Edge 完全対応 14
補足
完全対応 14
補足
補足 Filtering is not supported.
Firefox 完全対応 45
補足
完全対応 45
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
Opera 完全対応 17
補足
完全対応 17
補足
補足 If the filter parameter is empty, Opera matches all URLs.
Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
onCompletedChrome 完全対応 あり
補足
完全対応 あり
補足
補足 If the filter parameter is empty, Chrome matches all URLs.
Edge 完全対応 14
補足
完全対応 14
補足
補足 Filtering is not supported.
Firefox 完全対応 45
補足
完全対応 45
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
Opera 完全対応 17
補足
完全対応 17
補足
補足 If the filter parameter is empty, Opera matches all URLs.
Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
onCreatedNavigationTargetChrome 完全対応 あり
補足
完全対応 あり
補足
補足 If a blocked popup is unblocked by the user, the event is still not sent.
Edge 完全対応 14Firefox 完全対応 54
補足
完全対応 54
補足
補足 If the filter parameter is empty, Firefox raises an exception.
補足 If a blocked popup is unblocked by the user, the event is then sent.
Opera 完全対応 17
補足
完全対応 17
補足
補足 If a blocked popup is unblocked by the user, the event is still not sent.
Firefox Android 完全対応 54
補足
完全対応 54
補足
補足 If the filter parameter is empty, Firefox raises an exception.
補足 If a blocked popup is unblocked by the user, the event is then sent.
補足 This event is only sent in the 'window.open()' case.
onDOMContentLoadedChrome 完全対応 あり
補足
完全対応 あり
補足
補足 If the filter parameter is empty, Chrome matches all URLs.
Edge 完全対応 14
補足
完全対応 14
補足
補足 Filtering is not supported.
Firefox 完全対応 45
補足
完全対応 45
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
Opera 完全対応 17
補足
完全対応 17
補足
補足 If the filter parameter is empty, Opera matches all URLs.
Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
onErrorOccurredChrome 完全対応 あり
補足
完全対応 あり
補足
補足 If the filter parameter is empty, Chrome matches all URLs.
Edge 完全対応 14
補足
完全対応 14
補足
補足 Filtering is not supported
Firefox 完全対応 45
補足
完全対応 45
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
Opera 完全対応 17
補足
完全対応 17
補足
補足 If the filter parameter is empty, Opera matches all URLs.
Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
onHistoryStateUpdatedChrome 完全対応 ありEdge 完全対応 14
補足
完全対応 14
補足
補足 Filtering is not supported.
Firefox 完全対応 47Opera 完全対応 17Firefox Android 完全対応 48
onReferenceFragmentUpdatedChrome 完全対応 あり
補足
完全対応 あり
補足
補足 If the filter parameter is empty, Chrome matches all URLs.
Edge 完全対応 14
補足
完全対応 14
補足
補足 Filtering is not supported.
Firefox 完全対応 45
補足
完全対応 45
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
Opera 完全対応 17
補足
完全対応 17
補足
補足 If the filter parameter is empty, Opera matches all URLs.
Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 Filtering is supported from version 50.
補足 If the filter parameter is empty, Firefox raises an exception.
onTabReplacedChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 45
補足
完全対応 45
補足
補足 Although you can add listeners for this event, it will never fire because the underlying functionality is not supported.
Opera 完全対応 17Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 Although you can add listeners for this event, it will never fire because the underlying functionality is not supported.

凡例

完全対応  
完全対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。

Example extensions

Acknowledgements

This API is based on Chromium's chrome.webNavigation API. This documentation is derived from web_navigation.json in the Chromium code.

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

ドキュメントのタグと貢献者

このページの貢献者: Uemmra3
最終更新者: Uemmra3,