windows.update()

更新窗口的属性。使用此方法可以移动、调整大小、聚焦/取消聚焦窗口等。

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

语法

js
let updating = browser.windows.update(
  windowId,              // 整型
  updateInfo             // 对象
)

参数

windowId

integer。要更新的窗口的 ID。

updateInfo

object。包含要更新的属性值。

drawAttention 可选

boolean。若为 true,则以一种吸引用户的注意力而不改变当前聚焦的窗口的方式显示这一窗口。效果持续到用户将焦点切换到窗口为止。如果窗口是被聚焦的窗口则此选项无效。设置为 false 可以取消之前的 drawAttention 请求。

focused 可选

boolean。若为 true,将窗口置于前端。如果为 false,将 z 轴顺序中的下一个窗口置于前端。

height 可选

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

left 可选

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

state 可选

windows.WindowState 值。窗口的新状态。minimizedmaximizedfullscreen 状态不能与 lefttopwidthheight 结合使用。

titlePreface 可选

string。使用此选项将字符串添加到浏览器窗口的标题开头。根据底层操作系统的不同,这可能无法在没有标题的浏览器窗口上工作(例如 Firefox 中的 about:blank)。

top 可选

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

width 可选

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

返回值

一个 Promise,其会兑现为包含更新窗口详细信息的 windows.Window 对象。如果发生任何错误则该 promise 将以错误消息拒绝。

浏览器兼容性

示例

当用户点击浏览器操作的图标时,将窗口移动到左上角:

js
function onUpdated(windowInfo) {
  console.log(`更新窗口:${windowInfo.id}`);
}

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

browser.browserAction.onClicked.addListener((tab) => {
  let updating = browser.windows.update(tab.windowId, {
    left: 0,
    top: 0,
  });
  updating.then(onUpdated, onError);
});

示例扩展

备注: 此 API 基于 Chromium 的 chrome.windows API。该文档衍生自 Chromium 代码中的 windows.json