javascript - Chrome 打包应用程序,始终在顶部窗口

标签 javascript google-chrome always-on-top google-chrome-app

我正在编写一个文本编辑器,当切换到浏览器或电子书阅读器软件时,我需要应用程序窗口始终位于顶部。据我所知,对于 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);

感谢任何建议。

最佳答案

正如 Ben Wells 上面提到的,此功能现在可以通过 chrome.app 中的 alwaysOnTop 选项在稳定版本(v33 或 v34)中使用。 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();
});
list .json
"permissions": [
  "alwaysOnTopWindows"
]

这个好像是在issue 26427002里面加的, 在 issue 159523002 中稳定和 issue 48113024感谢the community !


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

通读 original proposal for this feature带我到issue 326361其中提到权限设置实际上称为alwaysOnTopWindows。然而,当时使用这个会产生一个“需要 Google Chrome 开发者 channel 或更新版本”错误(可能是因为该功能还不稳定)。

确实browsing the source code 中发现它很奇怪,这两个权限可能是彼此的别名,但这可能是因为我不完全了解 Chromium 代码库。

关于javascript - Chrome 打包应用程序,始终在顶部窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960076/

相关文章:

javascript - 如何访问 Chrome 的拼写检查词典?

android - chrome 25 iframe 自定义协议(protocol)不工作

javascript - 让 Chartjs 显示数据标签的键而不是值

javascript - {} - 0 VS ({} - 0) 在 JavaScript 中

Chrome 中的 CSS 显示问题 : background-image & position

java - 如何使从 Java Runtime.exec(command) 打开的程序始终在最前面

java - 框架总是在我的程序之上

html - Z-index 不适用于嵌入代码插件

javascript - Google map API autocomplete.getPlace() 返回的几何图形不一致

javascript - 如何循环遍历数组对象并检查每个元素以查看是否已定义?