chrome.windows
Description
使用 chrome.windows
API 与浏览器窗口交互。您可以使用此 API 在浏览器中创建、修改和重新排列窗口。
# Manifest
当被请求时,windows.Window
将包含一组 tabs.Tab
对象。如果您需要访问 tabs.Tab
的 url
、pendingUrl
、title
或 favIconUrl
属性,则必须在清单中声明“tabs
”权限。例如:
{
"name": "My extension",
...
"permissions": ["tabs"],
...
}
# The current window(当前窗口)
扩展系统中的许多函数都带有一个可选的 windowId 参数,该参数默认为当前窗口。
当前窗口是包含当前正在执行的代码的窗口。重要的是要意识到这可能与最顶层或焦点窗口不同。
例如,假设一个扩展从单个 HTML 文件创建了几个选项卡或窗口,并且该 HTML 文件包含对 tabs.query 的调用。当前窗口是包含进行调用的页面的窗口,无论最上面的窗口是什么。
在事件页面event page的情况下,当前窗口的值回落到最后一个活动窗口。在某些情况下,背景页面可能没有当前窗口。
# Examples(例子)
您可以在 examples/api/windows 目录中找到使用 windows 模块的简单示例。另一个示例位于检查器示例的 tabs_api.html 文件中。有关其他示例和查看源代码的帮助,请参阅示例Samples。
Summary
Types
Properties
Methods
Events
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
对象仅包含url
、pendingUrl
、title
和favIconUrl
属性。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
不能与left
、top
、width
或height
组合。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
window
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
windows
Window[]
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
window
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
window
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
以像素为单位调整窗口大小的宽度。对于面板,此值将被忽略。
RETURNS
Promise<Window>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
Events
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Chrome 86+
调整窗口大小时触发;此事件仅在提交新边界时调度,而不用于进行中的更改。
PARAMETERS
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
创建窗口时触发。
PARAMETERS
callback
function
Chrome 46+
The
callback
parameter looks like:(window: Window) => void
window
创建的窗口的详细信息。
filters
object optional
windowTypes
创建的窗口类型必须满足的条件。默认满足
['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
创建的窗口类型必须满足的条件。默认满足
['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
被移除的窗口类型必须满足的条件。默认情况下它满足
['normal', 'popup']
。
By.一粒技术服务.