This page was saved using WebZIP 7.0.3.1030 offline browser on 12/24/13 11:31:36.
Address: https://crxdoc-zh.appspot.com/extensions/windows.html
Title: chrome.windows - Google Chrome 扩展程序开发文档(非官方中文版)  •  Size: 78685

chrome.windows

描述 使用 chrome.windows API 与浏览器窗口交互。您可以使用该模块创建、修改和重新排列浏览器中的窗口。
可用版本 从 Chrome 5 开始稳定支持。
Permissions chrome.windows API 不需要任何权限就能使用。然而, TaburltitlefavIconUrl 属性需要有 "tabs" 权限后才会给出。

清单文件

当您请求时,Window 对象会包含 tabs.Tab 对象数组。如果您需要访问 tabs.TaburltitlefavIconUrl 属性,您必须在清单文件中声明 "tabs" 权限。例如:

{

  "name": "我的扩展程序",
  ...
  "permissions": ["tabs"],
  ...
}

当前窗口

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

当前窗口即包含当前正在执行的代码的窗口,值得注意的是这不一定是顶层窗口或拥有焦点的窗口。

例如,假设一个扩展程序在一个 HTML 文件中创建了几个标签页或窗口,该 HTML 文件中又调用了 tabs.query。当前窗口是包含发出调用的页面的窗口,无论顶层窗口是哪一个。

而在事件页面中,当前窗口的值则是最后一个活动的窗口。在某些情况下,后台页面可能没有当前窗口。

例子

Two windows, each with one tab
您可以在 examples/api/windows 目录中找到使用窗口模块的简单例子,另一个例子在 inspector 例子的 tabs_api.html 文件中。有关其他例子以及查看源代码的帮助,请参见示例

chrome.windows 参考

类型

Window

Window 的属性

id ( optional integer )

窗口标识符,窗口标识符在浏览器会话中唯一。在某些情况下,例如当您使用 sessions API 查询窗口时,窗口可能没有标识符,此时存在会话标识符。

focused ( boolean )

是否为当前具有焦点的窗口。

top ( optional integer )

窗口与屏幕顶部的距离,以像素为单位。在某些情况下,例如当您使用 sessions API 查询关闭的窗口时,窗口可能没有 top 属性。

left ( optional integer )

窗口与屏幕左侧的距离,以像素为单位。在某些情况下,例如当您使用 sessions API 查询关闭的窗口时,窗口可能没有 left 属性。

width ( optional integer )

窗口的宽度(包含边框),以像素为单位。在某些情况下,例如当您使用 sessions API 查询关闭的窗口时,窗口可能没有 width 属性。

height ( optional integer )

窗口的高度(包含边框),以像素为单位。在某些情况下,例如当您使用 sessions API 查询关闭的窗口时,窗口可能没有 height 属性。

tabs ( optional array of tabs.Tab )

表示窗口中所有标签页的 tabs.Tab 对象数组。

incognito ( boolean )

是否为隐身窗口。

type ( optional enum of "normal", "popup", "panel", or "app" )

浏览器窗口的类型。在某些情况下,例如当您使用 sessions 查询关闭的窗口时,窗口可能没有 type 属性。

state ( optional enum of "normal", "minimized", "maximized", or "fullscreen" )

浏览器窗口的状态。在某些情况下,例如当您使用 sessions 查询关闭的窗口时,窗口可能没有 state 属性。

alwaysOnTop ( boolean )

窗口是否设置为前端显示。

sessionId ( optional string )

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

属性

WINDOW_ID_NONE

chrome.windows.WINDOW_ID_NONE
WINDOW_ID_NONE ( -1 )
表示不存在Chrome浏览器窗口的windowId值。

WINDOW_ID_CURRENT

chrome.windows.WINDOW_ID_CURRENT
WINDOW_ID_CURRENT ( -2 )
代表当前窗口的windowId值。

方法

get

chrome.windows.get(integer windowId, object getInfo, function callback)

获取一个窗口的有关详情。

参数

windowId ( integer )

getInfo ( optional object )

属性

populate ( optional boolean )

如果为 true,Window 对象会有 tabs 属性,包含所有 tabs.Tab 对象的列表。只有当扩展程序清单文件中包含 "tabs" 权限时,Tab 对象才会包含 urltitlefavIconUrl 属性。

callback ( function )

callback 参数应该指定一个如下形式的函数:

function(Window window) {...};

window ( Window )

getCurrent

chrome.windows.getCurrent(object getInfo, function callback)

获取当前窗口

参数

getInfo ( optional object )

属性

populate ( optional boolean )

如果为 true,Window 对象会有 tabs 属性,包含所有 tabs.Tab 对象的列表。只有当扩展程序清单文件中包含 "tabs" 权限时,Tab 对象才会包含 urltitlefavIconUrl 属性。

callback ( function )

callback 参数应该指定一个如下形式的函数:

function(Window window) {...};

window ( Window )

getLastFocused

chrome.windows.getLastFocused(object getInfo, function callback)

获得最近获得焦点的窗口,通常为顶层窗口。

参数

getInfo ( optional object )

属性

populate ( optional boolean )

如果为 true,Window 对象会有 tabs 属性,包含所有 tabs.Tab 对象的列表。只有当扩展程序清单文件中包含 "tabs" 权限时,Tab 对象才会包含 urltitlefavIconUrl 属性。

callback ( function )

callback 参数应该指定一个如下形式的函数:

function(Window window) {...};

window ( Window )

getAll

chrome.windows.getAll(object getInfo, function callback)

获取所有窗口。

参数

getInfo ( optional object )

属性

populate ( optional boolean )

如果为 true,Window 对象会有 tabs 属性,包含所有 tabs.Tab 对象的列表。只有当扩展程序清单文件中包含 "tabs" 权限时,Tab 对象才会包含 urltitlefavIconUrl 属性。

callback ( function )

callback 参数应该指定一个如下形式的函数:

function(array of Window windows) {...};

windows ( array of Window )

create

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

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

参数

createData ( optional object )

属性

url ( optional string or array of string )

要在窗口中打开的一个 URL 或 URL 数组。完整的 URL 必须包含协议(即 "http://www.google.com",而不是 "www.google.com"),而相对 URL 相对于扩展程序中的当前页面。默认为“打开新的标签页”页面。

tabId ( optional integer )

需要移动至新窗口的标签页标识符。

left ( optional integer )

新窗口与屏幕左侧的距离,以像素为单位。如果未指定,新窗口将自然地与最后一个活动窗口偏离一定的距离。对于面板将忽略这一值。

top ( optional integer )

新窗口与屏幕顶部的距离,以像素为单位。如果未指定,新窗口将自然地与最后一个活动窗口偏离一定的距离。对于面板将忽略这一值。

width ( optional integer )

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

height ( optional integer )

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

focused ( optional boolean )

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

incognito ( optional boolean )

新窗口是否为隐身窗口。

type ( optional enum of "normal", "popup", "panel", or "detached_panel" )

指定要创建的浏览器窗口类型。除非设置了“--enable-panels”标志,"panel" 与 "detatched_panel" 类型都会创建弹出窗口。

callback ( optional function )

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function(Window window) {...};

window ( optional Window )

包含已创建窗口的详情。

update

chrome.windows.update(integer windowId, object updateInfo, function callback)

更新窗口属性。仅指定您需要更改的属性,未指定的属性不会更改。

参数

windowId ( integer )

updateInfo ( object )

属性

left ( optional integer )

窗口与屏幕左侧的距离,以像素为单位。对于面板将忽略这一值。

top ( optional integer )

窗口与屏幕顶部的距离,以像素为单位。对于面板将忽略这一值。

width ( optional integer )

窗口的宽度,以像素为单位。对于面板将忽略这一值。

height ( optional integer )

窗口的高度,以像素为单位。对于面板将忽略这一值。

focused ( optional boolean )

如果为true,将窗口置于顶层;如果为false,将Z-顺序中的下一个窗口置于顶层。

drawAttention ( optional boolean )

如果为true,使窗口以吸引用户注意的方式显示,而不更改活动窗口,这一效果将一直持续到用户将焦点移至这一窗口。如果窗口已经获得焦点则该选项无效,将这一属性设置为false可以取消上一次的突出显示请求。

state ( optional enum of "normal", "minimized", "maximized", or "fullscreen" )

窗口的新状态。"minimized"(最小化)、"maximized"(最大化)与 "fullscreen"(全屏)状态不能与 left、top、width 或 height 属性一起使用。

callback ( optional function )

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function(Window window) {...};

window ( Window )

remove

chrome.windows.remove(integer windowId, function callback)

移除(关闭)一个窗口以及其中的所有标签页。

参数

windowId ( integer )

callback ( optional function )

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

事件

onCreated

当窗口创建时产生。

addListener

chrome.windows.onCreated.addListener(function callback)

参数

callback ( function )

callback 参数应该指定一个如下形式的函数:

function(Window window) {...};

window ( Window )

有关已创建窗口的详情。

onRemoved

当窗口移除(关闭)时产生。

addListener

chrome.windows.onRemoved.addListener(function callback)

参数

callback ( function )

callback 参数应该指定一个如下形式的函数:

function(integer windowId) {...};

windowId ( integer )

已移除窗口的标识符。

onFocusChanged

在当前具有焦点的窗口改变时产生,如果所有 Chrome 浏览器窗口都没有焦点则为 WINDOW_ID_NONE。注意:在某些 Linux 窗口管理器中,从一个 Chrome 浏览器窗口切换到另一个之前总是会发送 WINDOW_ID_NONE 的该事件。

addListener

chrome.windows.onFocusChanged.addListener(function callback)

参数

callback ( function )

callback 参数应该指定一个如下形式的函数:

function(integer windowId) {...};

windowId ( integer )

获得焦点的新窗口的标识符。