chrome.windows

Description

使用 chrome.windows API 与浏览器窗口交互。您可以使用此 API 在浏览器中创建、修改和重新排列窗口。

# Manifest

当被请求时,windows.Window 将包含一组 tabs.Tab 对象。如果您需要访问 tabs.TaburlpendingUrltitlefavIconUrl 属性,则必须在清单中声明“tabs”权限。例如:

{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}

# The current window(当前窗口)

扩展系统中的许多函数都带有一个可选的 windowId 参数,该参数默认为当前窗口。

当前窗口是包含当前正在执行的代码的窗口。重要的是要意识到这可能与最顶层或焦点窗口不同。

例如,假设一个扩展从单个 HTML 文件创建了几个选项卡或窗口,并且该 HTML 文件包含对 tabs.query 的调用。当前窗口是包含进行调用的页面的窗口,无论最上面的窗口是什么。

在事件页面event page的情况下,当前窗口的值回落到最后一个活动窗口。在某些情况下,背景页面可能没有当前窗口。

# Examples(例子)

46

您可以在 examples/api/windows 目录中找到使用 windows 模块的简单示例。另一个示例位于检查器示例的 tabs_api.html 文件中。有关其他示例和查看源代码的帮助,请参阅示例Samples

Summary

Types

CreateType

Chrome 44+

指定要创建的浏览器窗口类型。 “面板(panel)”已弃用,仅适用于 Chrome 操作系统上现有的列入白名单的扩展程序。

TYPE

"normal", "popup", or "panel"

QueryOptions

Chrome 88+

PROPERTIES

  • populate

    boolean optional

    如果为 true,则 windows.Window 对象具有 tabs 属性,其中包含 tabs.Tab 对象的列表。如果扩展的清单文件包含“tabs”权限,则 Tab 对象仅包含 urlpendingUrltitlefavIconUrl 属性。

  • windowTypes

    WindowType[] optional

    如果设置,则返回的 windows.Window 将根据其类型进行过滤。如果未设置,则默认过滤器设置为 ['normal', 'popup']。

Window

PROPERTIES

  • alwaysOnTop

    boolean

    窗口是否设置为总是在顶部。

  • focused

    boolean

    窗口当前是否为焦点窗口。

  • height

    number optional

    窗口的高度,包括框架,以像素为单位。在某些情况下,可能不会为窗口分配高度属性;例如,当从会话sessions API 查询关闭的窗口时。

  • id

    number optional

    窗口的 ID。窗口 ID 在浏览器会话中是唯一的。在某些情况下,可能不会为窗口分配 ID 属性;例如,当使用会话sessions API 查询窗口时,在这种情况下可能会出现会话 ID

  • incognito

    boolean

    窗口是否隐身。

  • left

    number optional

    窗口距屏幕左边缘的偏移量(以像素为单位)。在某些情况下,可能不会为窗口分配 left 属性;例如,当从会话sessions API 查询关闭的窗口时。

  • sessionId

    string optional

    用于唯一标识窗口的会话 ID,从会话sessions API 获取。

  • state

    WindowState optional

    此浏览器窗口的状态。

  • tabs

    Tab[] optional

    表示窗口中当前选项卡的 tabs.Tab 对象数组。

  • top

    number optional

    窗口与屏幕顶部边缘的偏移量(以像素为单位)。在某些情况下,可能不会为窗口分配 top 属性;例如,当从会话sessions API 查询关闭的窗口时。

  • type

    WindowType optional

    这是浏览器窗口的类型。

  • width

    number optional

    窗口的宽度,包括框架,以像素为单位。在某些情况下,可能不会为窗口分配宽度属性;例如,当从会话sessions API 查询关闭的窗口时。

WindowState

Chrome 44+

此浏览器窗口的状态。在某些情况下,可能不会为窗口分配状态state属性;例如,当从会话sessions API 查询关闭的窗口时。

TYPE

"normal", "minimized", "maximized", "fullscreen", or "locked-fullscreen"

WindowType

Chrome 44+

这是浏览器窗口的类型。在某些情况下,可能不会为窗口分配类型type属性;例如,当从会话sessions API 查询关闭的窗口时。

TYPE

"normal", "popup", "panel", "app", or "devtools"

Properties

WINDOW_ID_CURRENT

代表当前窗口current window的 windowId 值。

VALUE

-2

WINDOW_ID_NONE

表示没有 Chrome 浏览器窗口的 windowId 值。

VALUE

-1

Methods

create

chrome.windows.create(
  createData?: object,
  callback?: function,
)

Promise

创建(打开)一个新的浏览器窗口,提供任何可选的大小、位置或默认 URL。

PARAMETERS

  • createData

    object optional

    • focused

      boolean optional

      如果为 true,则打开一个活动窗口。如果为 false,则打开一个非活动窗口。

    • height

      number optional

      新窗口的高度(以像素为单位),包括框架。如果未指定,则默认为自然高度。

    • incognito

      boolean optional

      新窗口是否应该是隐身窗口。

    • left

      number optional

      从屏幕左边缘定位新窗口的像素数。如果未指定,则新窗口自然地从最后一个聚焦窗口偏移。对于面板,此值将被忽略。

    • setSelfAsOpener

      boolean optional

      Chrome 64+

      如果为 true,则新创建的窗口的 'window.opener' 被设置为调用者,并且与调用者在相关浏览上下文unit of related browsing contexts的同一单元中。

    • state

      WindowState optional

      Chrome 44+

      窗口的初始状态。minimized, maximized, 和 fullscreen不能与 lefttopwidthheight 组合。

    • tabId

      number optional

      要添加到新窗口的选项卡的 ID。

    • top

      number optional

      从屏幕顶部边缘定位新窗口的像素数。如果未指定,则新窗口自然地从最后一个聚焦窗口偏移。对于面板,此值将被忽略。

    • type

      CreateType optional

      指定要创建的浏览器窗口类型。

    • url

      string | string[] optional

      要在窗口中作为选项卡打开的 URL 或 URL 数组。完全限定的 URL 必须包含一个方案,例如“http://www.google.com”,而不是“www.google.com”。非完全限定的 URL 在扩展中被认为是相对的。默认为新标签页。

    • width

      number optional

      新窗口的宽度(以像素为单位),包括框架。如果未指定,则默认为自然宽度。

  • callback

    function optional

    The callback parameter looks like:

    (window?: Window) => void

    • window

      Window optional

      包含有关创建的窗口的详细信息。

RETURNS

  • Promise<Window | undefined>

    Pending

    这仅在未指定callback参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与callback的第一个参数相同。

get

chrome.windows.get( windowId: number, queryOptions?: QueryOptions, callback?: function, )

Promise

获取有关窗口的详细信息。

PARAMETERS

  • windowId

    number

  • queryOptions

    QueryOptions optional

    Chrome 88+

  • callback

    function optional

    The callback parameter looks like:

    (window: Window) => void

RETURNS

  • Promise<Window>

    Pending

    这仅在未指定callback参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与callback的第一个参数相同。

getAll

chrome.windows.getAll( queryOptions?: QueryOptions, callback?: function, )

Promise

获取所有窗口。

PARAMETERS

  • queryOptions

    QueryOptions optional

    Chrome 88+

  • callback

    function optional

    The callback parameter looks like:

    (windows: Window[]) => void

RETURNS

  • Promise<Window[]>

    Pending

    这仅在未指定callback参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与callback的第一个参数相同。

getCurrent

chrome.windows.getCurrent( queryOptions?: QueryOptions, callback?: function, )

Promise

获取当前窗口current window

PARAMETERS

  • queryOptions

    QueryOptions optional

    Chrome 88+

  • callback

    function optional

    The callback parameter looks like:

    (window: Window) => void

RETURNS

  • Promise<Window>

    Pending

    这仅在未指定callback参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与callback的第一个参数相同。

getLastFocused

chrome.windows.getLastFocused( queryOptions?: QueryOptions, callback?: function, )

Promise

获取最近聚焦的窗口 - 通常是“顶部”窗口。

PARAMETERS

  • queryOptions

    QueryOptions optional

    Chrome 88+

  • callback

    function optional

    The callback parameter looks like:

    (window: Window) => void

RETURNS

  • Promise<Window>

    Pending

    这仅在未指定callback参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与callback的第一个参数相同。

remove

chrome.windows.remove(
  windowId: number,
  callback?: function,
)

Promise

删除(关闭)一个窗口和其中的所有选项卡。

PARAMETERS

  • windowId

    number

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • Promise<void>

    Pending

    这仅在未指定callback参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与callback的第一个参数相同。

update

chrome.windows.update(
  windowId: number,
  updateInfo: object,
  callback?: function,
)

Promise

更新窗口的属性。仅指定要更改的属性;未指定的属性不变。

PARAMETERS

  • windowId

    number

  • updateInfo

    object

    • drawAttention

      boolean optional

      如果为 true,则使窗口以将用户的注意力吸引到窗口的方式显示,而不更改聚焦窗口。效果一直持续到用户将焦点转移到窗口。如果窗口已经具有焦点,则此选项无效。设置为 false 以取消之前的 drawAttention 请求。

    • focused

      boolean optional

      如果为 true,则将窗口移到前面;不能与“最小化”状态结合使用。如果为 false,则将 z-order 中的下一个窗口置于最前面;不能与状态“全屏”或“最大化”结合使用。

    • height

      number optional

      以像素为单位调整窗口大小的高度。对于面板,此值将被忽略。

    • left

      number optional

      将窗口移动到的距屏幕左边缘的偏移量(以像素为单位)。对于面板,此值将被忽略。

    • state

      WindowState optional

      窗口的新状态。 'minimized'、'maximized' 和 'fullscreen' 状态不能与 'left'、'top'、'width' 或 'height' 结合使用。

    • top

      number optional

      将窗口移动到的屏幕顶部边缘的偏移量(以像素为单位)。对于面板,此值将被忽略。

    • width

      number optional

      以像素为单位调整窗口大小的宽度。对于面板,此值将被忽略。

  • callback

    function optional

    The callback parameter looks like:

    (window: Window) => void

RETURNS

  • Promise<Window>

    Pending

    这仅在未指定callback参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与callback的第一个参数相同。

Events

onBoundsChanged

chrome.windows.onBoundsChanged.addListener(
  callback: function,
)

Chrome 86+

调整窗口大小时触发;此事件仅在提交新边界时调度,而不用于进行中的更改。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (window: Window) => void

onCreated

chrome.windows.onCreated.addListener(
  callback: function,
  filters?: object,
)

创建窗口时触发。

PARAMETERS

  • callback

    function

    Chrome 46+

    The callback parameter looks like:

    (window: Window) => void

    • window

      Window

      创建的窗口的详细信息。

  • filters

    object optional

    • windowTypes

      WindowType[]

      创建的窗口类型必须满足的条件。默认满足['normal', 'popup'].

onFocusChanged

chrome.windows.onFocusChanged.addListener(
  callback: function,
  filters?: object,
)

当前焦点窗口改变时触发。如果所有 Chrome 窗口都失去焦点,则返回 chrome.windows.WINDOW_ID_NONE。注意:在某些 Linux 窗口管理器上,WINDOW_ID_NONE 总是在从一个 Chrome 窗口切换到另一个窗口之前立即发送。

PARAMETERS

  • callback

    function

    Chrome 46+

    The callback parameter looks like:

    (windowId: number) => void
    • windowId

      number

      新聚焦窗口的 ID。

  • filters

    object optional

    • windowTypes

      WindowType[]

      创建的窗口类型必须满足的条件。默认满足['normal', 'popup'].

onRemoved

chrome.windows.onRemoved.addListener(
  callback: function,
  filters?: object,
)

当窗口被移除(关闭)时触发。

PARAMETERS

  • callback

    function

    Chrome 46+

    The callback parameter looks like:

    (windowId: number) => void
    • windowId

      number

      已移除窗口的 ID。

  • filters

    object optional

    • windowTypes

      WindowType[]

      被移除的窗口类型必须满足的条件。默认情况下它满足 ['normal', 'popup']

By.一粒技术服务.

results matching ""

    No results matching ""