chrome.app.window
描述: |
使用 chrome.app.window API
创建窗口。窗口可以有框架,包含标题栏和大小控件,它们不和任何
Chrome 浏览器窗口关联。有关这些选项的演示,请参见 Window State 示例。
|
可用版本: |
从 Chrome 23 开始支持。
|
摘要
类型 | |
---|---|
ContentBounds | |
BoundsSpecification | |
Bounds | |
FrameOptions | |
CreateWindowOptions | |
AppWindow | |
方法 | |
create −
chrome.app.window.create(string url, CreateWindowOptions options, function callback)
| |
current −
AppWindow
chrome.app.window.current()
| |
getAll −
array of AppWindow
chrome.app.window.getAll()
| |
get −
AppWindow
chrome.app.window.get(string id)
| |
事件 | |
onBoundsChanged | |
onClosed | |
onFullscreened | |
onMaximized | |
onMinimized | |
onRestored |
类型
ContentBounds
从 Chrome 35 开始支持。
属性 | ||
---|---|---|
integer | (可选) left |
|
integer | (可选) top |
|
integer | (可选) width |
|
integer | (可选) height |
BoundsSpecification
从 Chrome 35 开始支持。
属性 | ||
---|---|---|
integer | (可选) left |
内容或窗口的 X 坐标。 |
integer | (可选) top |
内容或窗口的 Y 坐标。 |
integer | (可选) width |
内容或窗口的宽度。 |
integer | (可选) height |
内容或窗口的高度。 |
integer | (可选) minWidth |
内容或窗口的最小宽度。 |
integer | (可选) minHeight |
内容或窗口的最小高度。 |
integer | (可选) maxWidth |
内容或窗口的最大宽度。 |
integer | (可选) maxHeight |
内容或窗口的最大高度。 |
Bounds
从 Chrome 25 开始支持。
属性 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
integer | left |
该属性可用来获取或设置内容或窗口当前的 X 坐标。 |
|||||||||
integer | top |
该属性可用来获取或设置内容或窗口当前的 Y 坐标。 |
|||||||||
integer | width |
该属性可用来获取或设置内容或窗口的当前宽度。 |
|||||||||
integer | height |
该属性可用来获取或设置内容或窗口的当前高度。 |
|||||||||
integer | (可选) minWidth |
从 Chrome 35 开始支持。
该属性可用来获取或设置内容或窗口当前的最小宽度, |
|||||||||
integer | (可选) minHeight |
从 Chrome 35 开始支持。
该属性可用来获取或设置内容或窗口当前的最小高度, |
|||||||||
integer | (可选) maxWidth |
从 Chrome 35 开始支持。
该属性可用来获取或设置内容或窗口当前的最大宽度, |
|||||||||
integer | (可选) maxHeight |
从 Chrome 35 开始支持。
该属性可用来获取或设置内容或窗口当前的最大高度, |
|||||||||
function | setPosition |
从 Chrome 35 开始支持。 设置内容或窗口的位置。
|
|||||||||
function | setSize |
从 Chrome 35 开始支持。 设置内容或窗口的宽度和高度。
|
|||||||||
function | setMinimumSize |
从 Chrome 35 开始支持。
设置内容或窗口的最小大小约束,最小宽度或高度可以设置为
|
|||||||||
function | setMaximumSize |
从 Chrome 35 开始支持。
设置内容或窗口的最大大小约束,最小宽度或高度可以设置为
|
FrameOptions
从 Chrome 35 开始支持。
属性 | ||
---|---|---|
string | (可选) type |
边框类型: 如果使用
|
string | (可选) color |
允许设置边框颜色,只有边框类型为 边框颜色在 Chrome 36 中新增。 |
string | (可选) activeColor |
从 Chrome 36 开始支持。
允许设置窗口处于活动状态时的边框颜色,只有当边框类型为 边框颜色在 Chrome 36 中新增。 |
string | (可选) inactiveColor |
从 Chrome 36 开始支持。
允许设置窗口处于不活动状态时的边框颜色,只有当边框类型为 时才能设置边框颜色。 边框颜色在 Chrome 36 中新增。 |
CreateWindowOptions
属性 | ||
---|---|---|
string | (可选) id |
用于标识窗口的标识符,会用来记住窗口的大小与位置,当同一标识符的窗口再次打开时恢复原来的尺寸。如果创建窗口时另一个具有同样标识符的窗口已经存在,当前打开的窗口将获得焦点,而不会创建新窗口。 |
BoundsSpecification | (可选) innerBounds |
从 Chrome 35 开始支持。
用于指定窗口内容(不包括窗口装饰部分)的初始位置、初始大小和约束。如果还指定了 注意,窗口内外边框之间的距离由操作系统决定,所以 该属性在 Chrome 36 中新增。 |
BoundsSpecification | (可选) outerBounds |
从 Chrome 35 开始支持。
用于指定窗口(包括窗口装饰部分,如标题栏和边框)的初始位置、初始大小和约束。如果还指定了 注意,窗口内外边框之间的距离由操作系统决定,所以 该属性在 Chrome 36 中新增。 |
integer | (可选) minWidth |
从 Chrome 36 开始弃用。请使用 innerBounds 或 outerBounds。 窗口的最小宽度。 |
integer | (可选) minHeight |
从 Chrome 36 开始弃用。请使用 innerBounds 或 outerBounds。 窗口的最小高度。 |
integer | (可选) maxWidth |
从 Chrome 36 开始弃用。请使用 innerBounds 或 outerBounds。 窗口的最大宽度。 |
integer | (可选) maxHeight |
从 Chrome 36 开始弃用。请使用 innerBounds 或 outerBounds。 窗口的最大高度。 |
string or FrameOptions | (可选) frame |
框架类型:'none' 或 'chrome'(默认为 'chrome')。如果使用 'none',可以通过 CSS 属性 在 Chrome 36 或更高版本中可以使用 FrameOptions 对象。 |
ContentBounds | (可选) bounds |
从 Chrome 36 开始弃用。请使用 innerBounds 或 outerBounds。 窗口中内容的大小与位置(不包括标题栏)。如果同时指定了 id,并且以前显示过匹配标识符的窗口,则会使用记录下来的窗口大小与位置。 |
boolean | (可选) alphaEnabled |
尚未完全实现,您必须通过源代码建立 Chromium 才能尝试该 API。了解更多内容 启用窗口背景透明,仅在 ash 中支持,需要 app.window.alpha 权限。 |
enum of "normal" , "fullscreen" , "maximized" , or "minimized" |
(可选) state |
从 Chrome 28 开始支持。 窗口的初始状态,允许使它在创建时就全屏、最大化或最小化。默认为 'normal'(正常)。 |
boolean | (可选) resizable |
从 Chrome 27 开始支持。 如果为 true 的话,用户可以调整窗口的大小。默认为 true。 |
boolean | (可选) singleton |
从 Chrome 34 开始弃用。不再支持具有相同标志的多个窗口。 默认情况下,如果您指定了窗口的标识符,只有当另一个具有相同标识符的窗口不存在时才会创建。如果另一个具有相同标识符的窗口存在,则它将变为活动窗口。如果您确实需要创建多个相同标识符的窗口,您可以将该属性设置为 false。 |
boolean | (可选) alwaysOnTop |
从 Chrome 32 开始支持。
如果为 true,窗口会保持在其他大部分窗口之上。如果有多个这样的窗口,当前具有焦点的窗口会在前台。需要 创建窗口后调用 |
boolean | (可选) focused |
从 Chrome 33 开始支持。 如果为 true,窗口创建时具有焦点。默认为 true。 |
AppWindow
属性 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
function | focus |
使窗口拥有焦点。 |
|||||||||
function | fullscreen |
从 Chrome 28 开始支持。
使窗口进入全屏状态。 用户可以按下 Esc 键恢复窗口。如果应用请求 overrideEscFullscreen 权限,并调用 .preventDefault() 取消事件,就能避免离开全屏状态,如下所示:
|
|||||||||
function | isFullscreen |
从 Chrome 27 开始支持。 窗口是否处于全屏状态。 返回值为 boolean 类型。 |
|||||||||
function | minimize |
最小化窗口。 |
|||||||||
function | isMinimized |
从 Chrome 25 开始支持。 窗口是否最小化。 返回值为 boolean 类型。 |
|||||||||
function | maximize |
最大化窗口。 |
|||||||||
function | isMaximized |
从 Chrome 25 开始支持。 窗口是否最大化。 返回值为 boolean 类型。 |
|||||||||
function | restore |
从最大化、最小化或全屏状态恢复窗口。 |
|||||||||
function | moveTo |
将窗口移到指定位置(
|
|||||||||
function | resizeTo |
将窗口大小调整为
|
|||||||||
function | drawAttention |
从 Chrome 24 开始支持。 吸引用户注意该窗口。 |
|||||||||
function | clearAttention |
从 Chrome 24 开始支持。 取消对窗口的吸引。 |
|||||||||
function | close |
从 Chrome 24 开始支持。 关闭窗口。 |
|||||||||
function | show |
从 Chrome 24 开始支持。
显示窗口,如果窗口已经可见则什么都不做。如果
|
|||||||||
function | hide |
从 Chrome 24 开始支持。 隐藏窗口,如果窗口已经可见则什么都不做。 |
|||||||||
function | getBounds |
从 Chrome 36 开始弃用。请使用 innerBounds 或 outerBounds。 获取窗口内部的大小与位置,以 ContentBounds 对象表示。 返回值为 ContentBounds 类型。 |
|||||||||
function | setBounds |
从 Chrome 36 开始弃用。请使用 innerBounds 或 outerBounds。 设置窗口内部的大小与位置。
|
|||||||||
function | isAlwaysOnTop |
从 Chrome 32 开始支持。 窗口是否前端显示。 返回值为 boolean 类型。 |
|||||||||
function | setAlwaysOnTop |
从 Chrome 32 开始支持。
设置窗口是否应该前端显示。需要
|
|||||||||
Window | contentWindow |
已创建子窗口的 JavaScript window 对象。 |
|||||||||
string | id |
从 Chrome 33 开始支持。 创建窗口时指定的标识符。 |
|||||||||
Bounds | innerBounds |
从 Chrome 35 开始支持。 窗口内容的位置、大小和约束,不包括窗口边框。该属性在 Chrome 36 中新增。 |
|||||||||
Bounds | outerBounds |
从 Chrome 35 开始支持。 窗口的位置、大小和约束,包括窗口标题栏和边框。该属性在 Chrome 36 中新增。 |
方法
create
chrome.app.window.create(string url, CreateWindowOptions options, function callback)
窗口的大小与位置可以以几种不同的方式指定。最简单的选择是什么都不指定,这种情况下会使用默认大小与平台相关的位置。
要设置窗口的位置、大小和约束,您可以使用 innerBounds
或 outerBounds
属性。innerBounds
不包括窗口的装饰部分,而 outerBounds
包括窗口的标题栏和边框。注意,内界与外界之间的填充部分由操作系统决定,所以同时设置内外界是错误的(例如同时设置 innerBounds.left
和 outerBounds.left
)。
如果要自动记录窗口的位置,您可以为它们提供标识符。如果窗口有标识符,该标识符将在窗口移动或调整大小时用于记录它的大小和位置。以后打开具有同样标识符的窗口时使用记录的大小和位置,而不是指定的大小和位置。如果您需要打开一个具有标识符的窗口,并且使用不同于记录的默认位置,您可以使它创建时隐藏,将它移动到期望的位置,然后显示它。
参数 | |||||
---|---|---|---|---|---|
string | url | ||||
CreateWindowOptions | (可选) options |
||||
function | (可选) callback |
在已创建窗口(子窗口)的 load 事件产生前在父窗口中调用,父窗口可以设置子窗口中的字段或函数,以便在 onload 中使用。例如:background.js:
window.js:
如果您指定了 callback 参数,它应该是一个如下形式的函数: function(AppWindow createdWindow) {...};
|
current
AppWindow
chrome.app.window.current()
返回当前脚本上下文(即 JavaScript window 对象)的 AppWindow 对象。这也可以在另一个页面的脚本上下文句柄上调用,例如 otherWindow.chrome.app.window.current()。
getAll
array of AppWindow
chrome.app.window.getAll()
从 Chrome 33 开始支持。
获取所有当前创建的应用窗口数组。该方法在 Chrome 33 中新增。
get
AppWindow
chrome.app.window.get(string id)
事件
onBoundsChanged
从 Chrome 26 开始支持。
当窗口改变大小时产生。
addListener
chrome.app.window.onBoundsChanged.addListener(function callback)
参数 | ||
---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function() {...};
|
onClosed
从 Chrome 26 开始支持。
当窗口关闭时产生。注意,您应该在正在关闭的窗口之外的其他窗口监听该事件,例如在后台网页中。因为窗口关闭并产生该事件时正处于销毁的过程中,并不是所有 API 在窗口的脚本上下文中都能正常工作。
addListener
chrome.app.window.onClosed.addListener(function callback)
参数 | ||
---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function() {...};
|
onFullscreened
从 Chrome 27 开始支持。
窗口全屏时产生。
addListener
chrome.app.window.onFullscreened.addListener(function callback)
参数 | ||
---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function() {...};
|
onMaximized
从 Chrome 26 开始支持。
当窗口最大化时产生。 Fired when the window is maximized.
addListener
chrome.app.window.onMaximized.addListener(function callback)
参数 | ||
---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function() {...};
|
onMinimized
从 Chrome 26 开始支持。
当窗口最小化时产生。
addListener
chrome.app.window.onMinimized.addListener(function callback)
参数 | ||
---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function() {...};
|
onRestored
从 Chrome 26 开始支持。
当窗口从最小化或最大化的状态恢复时产生。
addListener
chrome.app.window.onRestored.addListener(function callback)
参数 | ||
---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function() {...};
|