webNavigation.getAllFrames()
Given a tab ID, retrieves information about all the frames it contains.
This is an asynchronous function that returns a Promise
.
Syntax
let gettingFrames = browser.webNavigation.getAllFrames(
details // object
)
Parameters
Return value
A Promise
that will be fulfilled with an array of objects, each of which has the following properties:
errorOccurred
-
boolean
. True if the last navigation in this frame was interrupted by an error, i.e. theonErrorOccurred
event fired. processId
Optional Deprecated-
integer
. This value is not set in modern browsers. When it was set, it represented the ID of the process running the renderer for this tab. frameId
-
integer
. The ID of the frame. If this is the main frame, thenframeId
is zero. parentFrameId
-
integer
. ID of this frame's parent. This is -1 if there is no parent frame: that is, if this frame is the top-level browsing context in the tab. url
-
string
. The URL currently associated with this frame.
If the tab is discarded, the promise will instead resolve with a null
value. If the specified tab could not be found, or some other error occurs, the promise will be rejected with an error message.
Browser compatibility
desktop | mobile | ||||||
---|---|---|---|---|---|---|---|
getAllFrames |
Examples
This code logs the URLs of all frames in the active tab, when the user clicks a browser action:
function logFrameInfo(framesInfo) {
for (const frameInfo of framesInfo) {
console.log(frameInfo);
}
}
function onError(error) {
console.error(`Error: ${error}`);
}
function logAllFrames(tabs) {
browser.webNavigation
.getAllFrames({
tabId: tabs[0].id,
})
.then(logFrameInfo, onError);
}
browser.browserAction.onClicked.addListener(() => {
browser.tabs
.query({
currentWindow: true,
active: true,
})
.then(logAllFrames, onError);
});
Note:
This API is based on Chromium's chrome.webNavigation
API. This documentation is derived from web_navigation.json
in the Chromium code.