Skip to content

Latest commit

 

History

History
178 lines (143 loc) · 7.02 KB

File metadata and controls

178 lines (143 loc) · 7.02 KB
title slug l10n
tabs.query()
Mozilla/Add-ons/WebExtensions/API/tabs/query
sourceCommit
a6313e45a6ae4c356325f06d0e7e8919bab251a8

{{AddonSidebar}}

获取具有指定属性的所有标签页,如果未指定任何属性,则获取所有标签页。

这是一个返回 Promise 的异步函数。

语法

let querying = browser.tabs.query(queryInfo)

参数

  • queryInfo

    • : objectquery() 函数将仅获取其属性与此处包含的属性相匹配的标签页。

      请参阅 {{WebExtAPIRef("tabs.Tab")}} 文档以了解有关这些属性的详细信息。

      • active {{optional_inline}}
        • : boolean。标签页是否在窗口中处于活动状态。
      • attention {{optional_inline}}
        • : boolean。指示标签页是否正在吸引注意力。
      • audible {{optional_inline}}
        • : boolean。标签页是否在播放声音。
      • autoDiscardable {{optional_inline}}
        • : boolean。浏览器是否可以自动丢弃该标签页。默认值为 true。若设置为 false,则浏览器将不会自动丢弃该标签页。但是,标签页仍可使用 {{WebExtAPIRef("tabs.discard")}} 来丢弃。
      • cookieStoreId {{optional_inline}}
        • : stringstring 数组。使用它来返回 tab.cookieStoreId 与指定的任何 cookieStoreId 字符串相匹配的标签页。此选项仅在附加组件具有 "cookies" 权限时才可用。有关详细信息,请参见使用场景身份
      • currentWindow {{optional_inline}}
        • : boolean。标签页是否在当前窗口中。
      • discarded {{optional_inline}}
        • : boolean。标签页是否被丢弃。丢弃的标签页是指其内容已从内存中卸载,但仍在标签条中可见的标签页。其内容将下次激活时重新加载。
      • hidden {{optional_inline}}
        • : boolean。标签页是否被隐藏。
      • highlighted {{optional_inline}}
        • : boolean。标签页是否突出显示。
      • index {{optional_inline}}
        • : integer。标签页在其窗口中的位置。
      • muted {{optional_inline}}
        • : boolean。标签页是否静音。
      • lastFocusedWindow {{optional_inline}}
        • : boolean。标签页是否在最近聚焦的窗口中。
      • pinned {{optional_inline}}
        • : boolean。标签页是否固定。
      • status {{optional_inline}}
        • : {{WebExtAPIRef('tabs.TabStatus')}}。标签页是否已完成加载。
      • title {{optional_inline}}
        • : string。将页面标题与模式进行匹配。需要“tabs”权限或匹配标签的主机权限
      • url {{optional_inline}}
        • : stringstring 数组。将标签页与一个或多个匹配模式进行匹配。请注意,不会匹配片段标识符。需要“tabs”权限或匹配标签的主机权限
      • windowId {{optional_inline}}
        • : integer。父窗口的 id,或 {{WebExtAPIRef('windows.WINDOW_ID_CURRENT')}}(用于当前窗口)。
      • windowType {{optional_inline}}
        • : {{WebExtAPIRef('tabs.WindowType')}}。标签页所在窗口的类型。

返回值

一个 Promise,其会兑现为包含 {{WebExtAPIRef('tabs.Tab')}} 对象(其中包含有关每个匹配的标签页的信息)的数组。

如果发生任何错误,promise 将以错误消息拒绝。

示例

获取所有标签页:

function logTabs(tabs) {
  for (const tab of tabs) {
    // tab.url 需要 `tabs` 权限或匹配的主机权限。
    console.log(tab.url);
  }
}

function onError(error) {
  console.error(`发生错误:${error}`);
}

browser.tabs.query({}).then(logTabs, onError);

获取当前窗口中的所有标签页:

function logTabs(tabs) {
  for (let tab of tabs) {
    // tab.url 需要 `tabs` 权限或匹配的主机权限。
    console.log(tab.url);
  }
}

function onError(error) {
  console.log(`发生错误:${error}`);
}

browser.tabs.query({ currentWindow: true }).then(logTabs, onError);

获取当前窗口中的活动标签页:

function logTabs(tabs) {
  // tabs[0].url 需要 `tabs` 权限或匹配的主机权限。
  console.log(tabs[0].url);
}

function onError(error) {
  console.error(`错误:${error}`);
}

browser.tabs
  .query({ currentWindow: true, active: true })
  .then(logTabs, onError);

获取 "mozilla.org" 及其任何子域下所有 HTTP 和 HTTPS URL 的标签页:

function logTabs(tabs) {
  for (const tab of tabs) {
    // tab.url 需要 `tabs` 权限或匹配的主机权限。
    console.log(tab.url);
  }
}

function onError(error) {
  console.error(`发生错误:${error}`);
}

browser.tabs.query({ url: "*://*.mozilla.org/*" }).then(logTabs, onError);

{{WebExtExamples}}

浏览器兼容性

{{Compat}}

Note

该 API 基于 Chromium 的 chrome.tabs API。本文档衍生自 Chromium 代码中的 tabs.json