语法
let creating = browser.tabs.create(
createProperties // object
)
参数
createProperties-
object。用于为新标签页设置属性的对象。有关这些属性的更多信息,请参阅tabs.Tab文档。active可选-
boolean。是否将标签页设置为窗口中的活动标签页。如果为false,则无效。不会影响窗口是否获得焦点(请参阅windows.update)。默认为true。 -
string。使用此项来创建 cookie 存储 ID 为cookieStoreId的标签页。仅当扩展具有"cookies"权限时,此选项才可用。有关更多信息,请参阅 使用上下文身份。 discarded可选-
boolean。是否创建标签页并使其在标签栏中可见,而无需将任何内容加载到内存中,这种状态称为丢弃。标签页的内容将在激活时加载。 index可选-
integer。标签页在窗口中应占据的位置。提供的值将被限制在零和窗口中的标签页数量之间。 muted可选-
boolean。是否应将标签页静音。默认为false。 openerTabId可选-
integer。打开此标签页的标签页的 ID。如果指定,则打开者标签页必须与新创建的标签页位于同一窗口中。 openInReaderMode可选-
boolean。如果为true,则在 阅读模式 中打开此标签页。默认为false。 pinned可选-
boolean。是否应将标签页固定。默认为false。 selected可选-
boolean。是否应将标签页设置为窗口中的选中标签页。默认为true。警告:此属性已弃用,在 Firefox 中不受支持。请改用
active。 title可选-
string。标签页的标题。仅当使用discarded设置为true创建标签页时才允许。 url可选-
string。要初始导航到的标签页的 URL。默认为新标签页。完全限定的 URL 必须包含方案(例如,'http://www.google.com' 而不是 'www.google.com')。
出于安全原因,在 Firefox 中,此项可能不是特权 URL。因此,传递任何以下 URL 都将失败
- chrome: URL
- javascript: URL
- data: URL
- file: URL(即文件系统上的文件。但是,要使用打包在扩展中的文件,请参阅下文)
- 特权 about: URL(例如,
about:config、about:addons、about:debugging)。非特权 URL(例如,about:blank)是允许的。 - 如果未提供 URL 值,则可以打开新标签页(
about:newtab)。
要加载与扩展一起打包的页面,请指定一个以扩展的 manifest.json 文件开头的绝对 URL。例如:'/path/to/my-page.html'。如果省略前导 '/',则 URL 被视为相对 URL,不同的浏览器可能会构建不同的绝对 URL。
windowId可选-
integer。要在其中创建新标签页的窗口。默认为当前窗口。
返回值
一个 Promise,它将使用一个包含已创建标签页详细信息的 tabs.Tab 对象来解析。如果无法创建标签页(例如,因为 url 使用了特权方案),则 Promise 将以错误消息被拒绝。
browser.tabs.create() 返回的 Promise 在标签页创建完成后立即解析。标签页可能仍在加载中。要检测标签页何时加载完成,请在调用 tabs.create 之前监听 tabs.onUpdated 或 webNavigation.onCompleted 事件。
示例
在新标签页中打开 "https://example.org"
function onCreated(tab) {
console.log(`Created new tab: ${tab.id}`);
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.browserAction.onClicked.addListener(() => {
let creating = browser.tabs.create({
url: "https://example.org",
});
creating.then(onCreated, onError);
});
扩展程序示例
浏览器兼容性
加载中…
注意:此 API 基于 Chromium 的 chrome.tabs API。此文档摘自 Chromium 代码中的 tabs.json。