固定并始终在 Chrome 扩展程序中的顶部弹出窗口

Cri*_*iña 3 javascript google-chrome popup popupwindow google-chrome-extension

我正在开发 Google Chrome 扩展程序,我需要制作一个固定在角落并始终位于其他窗口顶部的弹出窗口。

我留下一个参考图片:

在此处输入图片说明

Dan*_*ger 10

坏消息...

很抱歉,现在不可能再强制窗口始终保持在最前面。但是,如果您只需要在屏幕右下角打开一个窗口,请查看另一个答案:在屏幕右下角打开 Chrome 应用程序窗口

以前,一种选择是使用chrome.windows.create({ type: 'panel' }). 面板可以有任何大小和位置,支持永远在最前面的功能,可以显示任意一段代码......但它们现在已经消失了,正如你在文档中看到的那样:

"panel"

在此 API 中已弃用。Chrome 应用程序面板样式的窗口。扩展程序只能看到自己的面板窗口。

删除的主要原因是维护成本太高,您可以在本文中阅读

另一种选择曾经是webKitNotifications.createHTMLNotification()但那个也不见了

警告: webKitNotifications.createHTMLNotification()Web 通知 API 中已被弃用。在新的Web API的通知只允许文字。Chrome 通知 API将很快升级为稳定版本,网络通知将更新为使用新的丰富通知格式。

你并不孤单。许多扩展程序(例如YouTube™ 的 Always On Top画中画查看器)都依赖于始终处于最佳状态的功能,您可以从差评中看到他们无法或不愿意找到替代解决方案。

图像的替代品

仅显示图像(可能不适合您,因为您可能还需要声音)的一种替代方法是使用带有画布图像的图像通知,您可以从后台脚本动态生成和更新该图像。

使用这种方法,您可能能够显示动画/视频,但我不确定它会有多流畅。

使用上下文脚本的替代方法

如果您想向用户永久显示任意代码,您可以使用tabs API来跟踪活动选项卡并使用executeScript和插入自定义代码insertCSS

这种方法的三个主要缺点是:

  • 内容不会立即出现,特别是在需要先加载的视频的情况下,因此当用户切换标签时,他们实际上会注意到注入的内容如何再次出现并加载它必须加载的任何内容。

  • 如果 Chrome 被最小化或部分离开屏幕,他们可能看不到注入的内容。

  • 与页面上的现有代码冲突。