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

时间:2018-10-29 19:56:50

标签: javascript google-chrome google-chrome-extension popup popupwindow

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

我留下参考图像:

enter image description here

1 个答案:

答案 0 :(得分:0)

坏消息...

对不起,但是再也无法迫使窗口始终位于最上面了。但是,如果只需要在屏幕的右下角打开一个窗口,请查看另一个答案:Getting a Chrome app window to open at the bottom right of screen

之前,一种选择是使用chrome.windows.create({ type: 'panel' })。面板可以具有任意大小和位置,支持始终位于最前面的功能,可以显示任何代码段... 但是现在不见了,就像您在docs上看到的那样:

  

"panel"

     

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

删除该文件的主要原因是维护成本太高,如您在this article中所读。

另一个选项曾经是webKitNotifications.createHTMLNotification()但是这个选项也已消失

  

警告:web notifications API中的webKitNotifications.createHTMLNotification()已弃用。 new web notifications API仅允许输入文本。 Chrome notifications API将很快升级到稳定状态,并且网络通知将更新为使用新的丰富通知格式。

虽然你并不孤单。像Always On Top for YouTube™Picture in Picture Viewer这样的扩展都依赖于始终处于最上层的功能,并且您可以从不良评论中看出他们没有能力或不愿意找到替代解决方案。

图片的替代方式

一种仅显示图像的替代方法(可能对您也不起作用,因为您可能还需要声音)可能将image notification与画布图像一起使用,您可以从{{3} }。

使用这种方法,您也许可以显示动画/视频,但是我不确定它会多么平滑。

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

如果您想向用户永久显示任何代码,则可以使用background script来跟踪活动标签,并使用tabs APIexecuteScript在其上插入自定义代码

此方法的三个主要缺点是:

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

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

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