tabs.create()

创建一个新的选项卡。

这是一个异步函数,返回一个 Promise.

语法

js
let creating = browser.tabs.create(
  createProperties   // object
)

参数

createProperties

object. 要赋予新选项卡的属性。要了解有关这些属性的更多信息,请参阅 tabs.Tab 文档。

active 可选

boolean. 选项卡是否应成为窗口中的活动选项卡。如果为 false,则无效。不会影响窗口是否处于焦点状态(请参阅 windows.update)。默认为 true

cookieStoreId 可选

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:configabout:addonsabout: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.onUpdatedwebNavigation.onCompleted 事件。

示例

在新标签页中打开 "https://example.org"

js
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