【发布时间】:2021-11-12 11:03:38
【问题描述】:
我正在尝试编写一个 Firefox 插件,它允许用户快速将特定打开的窗口带到前面。在研究如何聚焦窗口时,我了解到浏览器会严格限制这一点以避免误用。如果它不是用户想要的,我完全支持。在我的情况下,用户将安装插件以明确具有此功能,因此聚焦窗口将是用户想要的。
执行此操作的经典方法是 Window.focus(),但即使 Mozilla 文档也说,此操作的成功取决于用户浏览器的配置。
请求将窗口置于前面。它可能由于用户设置而失败,并且在此方法返回之前不能保证窗口位于最前面。 - Source
在我的浏览器(Ubuntu 上的 Firefox 94)中它不起作用。
我还读到将about:config 中的dom.disable_window_flip 设置为true 将启用Window.focus(),但它没有 - 而且这对于插件来说不是一种可行的方法。
Firefox AddOns 使用permission system,我的期望是必须有一个权限,允许为这个特定的 AddOn 聚焦窗口。不幸的是,权限没有很好的记录,我无法通过反复试验找到正确的权限。
我在网上找到的关于通过插件聚焦窗口的大部分稀缺信息都是 5 到 10 年前发布的,现在已经不起作用了。
我尝试了几种方法,例如从弹出脚本中调用browser.windows.update(tabId, { focused: true })(我有一个different issue)。当弹出脚本的消息要求时,我还尝试注入一个调用Window.focus() 的内容脚本。这些都不起作用。
所以我的第一个问题是:今天(2021 年,Firefox 94)有什么方法可以让 AddOns 将窗口放在前面吗?
如果是这样:谁能告诉我怎么做?
提前致谢!
【问题讨论】:
标签: javascript firefox firefox-addon firefox-addon-webextensions