javascript - 已修复且始终位于 Chrome 扩展程序中的顶部弹出窗口
解决方案
坏消息...
很抱歉,现在无法强制窗口始终保持在顶部。但是,如果您只需要在屏幕的右下角打开一个窗口,请查看另一个答案:Getting a Chrome app window to open at the bottom of screen。
以前,一种选择是使用chrome.windows.create({ type: 'panel' })
. 面板可以有任何大小和位置,支持始终在最上面的功能,可以显示任意一段代码......但是它们现在已经消失了,正如您在文档中看到的那样:
"panel"
在此 API 中已弃用。Chrome 应用程序面板样式的窗口。扩展只能看到自己的面板窗口。
删除的主要原因是维护成本太高,您可以在本文中阅读。
另一种选择曾经是webKitNotifications.createHTMLNotification()
,但那个也没有了:
警告:
webKitNotifications.createHTMLNotification()
在web 通知 API中已被弃用。新的网络通知 API只允许文本。Chrome 通知 API将很快升级为稳定版,并且网络通知将更新为使用新的丰富通知格式。
你并不孤单。很多扩展,如YouTube™ 的 Always On Top™</a> 或画中画查看器都依赖于始终位于顶部的功能,您可以从差评中看到他们无法或不愿意找到替代解决方案。
图像的替代品
仅显示图像的一种替代方法(可能不适合您,因为您可能还需要声音)是使用带有画布图像的图像通知,您可以从后台脚本动态生成和更新。
使用这种方法,您也许可以显示动画/视频,但我不确定它的流畅程度。
使用上下文脚本的替代方法
如果您想向用户永久显示任意代码,您可以使用tabs API来跟踪活动选项卡并使用executeScript
and在其上插入自定义代码insertCSS
。
这种方法的三个主要缺点是:
内容不会立即出现,尤其是在需要首先加载的视频的情况下,因此当用户切换标签时,他们实际上会注意到注入的内容如何再次出现并加载它必须加载的任何内容。
如果 Chrome 被最小化或部分不在屏幕上,他们可能看不到注入的内容。
与页面上的现有代码冲突。
推荐阅读
- linux - 如何发送数据/触发以太网网络设备驱动程序的 ndo_start_xmit?
- android - 选择无法在 Android 4.4.4 上运行的联系程序
- php - 当用户未进行选择时,从表单($_GET)在 mysql WHERE 语句中发布结果
- c# - API 请求在 Postman 中有效,但不适用于生成的代码
- swift - 应用偏移量时,CollectionView 单元格 Snapkit 约束失败
- python - 如何创建 rest_framework.request.Request 类型的对象来执行获取请求?
- swagger - Swagger $ref 使用字段名导入文件名
- r - 适当使用`mapply()`获取矩阵输出
- wordpress - CSS 样式未显示在多个页面上。如何在 Wordpress 中解决这个问题?
- c# - 使用 .bat 将参数传递给 C# 文件