tabs.create()
创建一个新的选项卡。
这是一个异步函数,返回一个 Promise
.
语法
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
使用了特权方案),则承诺将被拒绝并显示错误消息。
由 browser.tabs.create()
返回的承诺在创建选项卡后立即解析。选项卡可能仍在加载。要检测选项卡何时加载完成,请在调用 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);
});
示例扩展
浏览器兼容性
BCD 表格仅在浏览器中加载
注意: 此 API 基于 Chromium 的 chrome.tabs
API。此文档来自 Chromium 代码中的 tabs.json
。