4

我正在编写一个文本编辑器,当切换到浏览器或电子书阅读器软件时,我需要应用程序窗口始终位于顶部。据我所知,对于 Windows 用户,chrome 不提供任何解决方案。创建窗口时是否有任何参数要发送以使窗口始终位于顶部?

或者我可以在应用程序中提供任何按钮来打开或关闭此功能吗?

我用来在 bg.js 中创建窗口的代码:

var launch = function () {
chrome.app.window.create('index.html', {
  type: 'shell',
  width: 440,
  height: 680,
  minWidth: 440,
  maxHeight: 680,
  id: 'paat-start'
});
};
chrome.app.runtime.onLaunched.addListener(launch);
chrome.commands.onCommand.addListener(launch);

感谢您的任何建议。

4

2 回答 2

8

正如上面 Ben Wells 所提到的,这个特性现在可以通过alwaysOnTop. chrome.app.windows.create请注意,manifest.json文件中需要特殊权限。例子:

背景.js
chrome.app.window.create('window.html', {
  alwaysOnTop: true,
}, function (appWindow) {
  // Window created and will remain on top of others.

  // Change the property programmatically via:
  //appWindow.setAlwaysOnTop();
});
清单.json
"permissions": [
  "alwaysOnTopWindows"
]

这似乎已在 issue 26427002 中添加,在issue 159523002issue 48113024中稳定,感谢社区


前段时间我对此进行了研究,并想对我的发现进行分类,因为从历史上看,文档中存在一些差异,之前声明所需权限的名称是alwaysOnTop,但是使用它会导致“权限未知”错误。

阅读此功能的原始提案后,我发现了issue 326361,其中提到了权限设置实际上是被调用的alwaysOnTopWindows。但是,当时使用这个会产生“需要 Google Chrome 开发通道或更新版本”的错误(可能是因为该功能还不稳定)。

确实在浏览源代码时发现它很奇怪,这两个权限可能是彼此的别名,但这可能是因为我不完全了解 Chromium 代码库。

于 2014-08-04T15:00:00.987 回答
4

chrome.app.window.createalwaysOnTop在最新版本的 Chrome 中确实支持布尔选项。该功能目前在大多数平台上处于 beta 通道中,而在其余平台上至少处于开发通道中。

于 2013-11-13T20:49:35.900 回答