问题标签 [firefox-addon-webextensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ubuntu - 后台脚本中的 window.state = 'fullscreen' 是否应该工作?
在此处使用 Xubuntu 14.04 和 Firefox 45.0.1
我正在尝试从后台脚本中自动将浏览器窗口置于全屏状态,如果location.hash == "#fullscreen"
.
这是从特权网页的脚本请求的,方法是执行postMessage()
内容脚本侦听的操作,然后将这个请求委托给后台脚本。
一切都按预期工作,包括(参见下面的相关源代码片段)console.log()
中的预期值background.js
......除了,窗口不会变成全屏;实际上什么都没有发生,也没有关于需要用户启动事件的控制台警告,如果我从网页本身尝试类似的东西,我会收到这个警告(这就是我首先转向创建这个扩展的原因)。w.state = 'minimized'
例如,尝试也无济于事。
问题:
Firefox WebExtensions API 是否应该支持
window.state
更改(已经)?如果是这样,Firefox WebExtensions API 是否应该有足够的特权来发起全屏而不需要明确的用户交互?
如果是这样,是否应该允许我从我试图这样做的上下文中这样做?
(X)ubuntu 或任何 Firefox 偏好可能是罪魁祸首吗?
相关manifest.json
数据:
特权网页脚本:
content.js
脚本:
background.js
脚本:
google-chrome-extension - Chrome 扩展和 Firefox WebExtensions 清单:应用程序密钥支持
Firefox WebExtensions需要扩展清单中的应用程序键。
Chrome 的扩展似乎不支持应用程序密钥,并且当密钥存在时 Chrome 会抛出错误,这与 Firefox 不同,它只是忽略不支持的密钥。
有没有办法绕过这个错误,不需要为每个浏览器使用两个不同的清单?
当应用程序密钥出现在清单中时,Chrome 会出现此错误:
Unrecognized manifest key 'applications'.
firefox - 在 Firefox WebExtension 后台使用 ctypes
我正在尝试为 Firefox 编写 WebExtension。基本上,我需要一个如何从 Firefox 运行本地程序的工作示例。
我当前的扩展实现包括:
- 背景.js
- 内容脚本.js
- 清单.json
我正在从网页发送一条消息,该消息由将其转发到 background.js 的 content-scripts.js 处理。但是在 background.js 的 msgbox 函数中,我无法调用 ctypes。它给了我错误:
ctypes 未定义
我尝试以不同的方式加载 ctypes 但它不起作用:
Components.utils.import("resource://gre/modules/ctypes.jsm")
或
var {ctypes} = Cu.import("resource://gre/modules/ctypes.jsm"
我做错了什么?
这是我的扩展的源代码。
清单.josn:
背景.js:
javascript - 尝试 getUrl 图像时 Firefox WebExtension 中的安全错误
尝试移植某些 Chrome 扩展程序并出现此安全错误:“ http://example.com ”中的内容可能无法加载或链接到“moz-extension://04d69802-c26f-47ae-86f2-d54650455e5a/blocks/indicators/ __icon/indicators__icon-tweet.png"
在manifest.json中,此路径位于web_accessible_resources中。
firefox-addon - 使用 Firefox 扩展存储
我能够以某种方式运行这个扩展:
https://github.com/mdn/webextensions-examples/tree/master/beastify
单击浏览器图标时popup/choose_beast.js
会调用。
有人可以告诉我为什么这段代码(放在顶部popup/choose_beast.js
)会产生异常:
以下是 中的相关条目manifest.json
:
我可以在此弹出 html 中存储数据的方式是什么,以便我可以随时在内容脚本中检索?
这个页面 choose_beast.html 也在哪个上下文中运行?背景、页面脚本或内容脚本?
javascript - 如何在 Firefox 插件中获取右键单击选项卡的 URL
我正在编写一个 Firefox 扩展,它将菜单项添加到浏览器的选项卡上下文菜单中,以将选项卡的 URL 发送到 Web 服务。我的菜单项有一个command
事件侦听器,它在选择菜单项时触发并且工作正常。
我遇到的麻烦是根据我收到的事件确定右键单击了哪个选项卡。从菜单项本身(这是事件的目标)到选项卡似乎没有一条简单的路径command
,因为选项卡上下文菜单不是 XUL-land 中选项卡的子项。当然,我不能只获取当前选项卡,因为用户可能右键单击了非活动选项卡。
我目前使用的解决方案是contextmenu
在每个选项卡上放置一个事件处理程序,将选项卡的 URL 存储在全局变量中,并在我的command
事件处理程序中使用这个全局变量。这很好用,而且我对全局变量有点放心,因为在物理上不可能同时调出多个上下文菜单。
但是有更好的方法吗?我想command
用一个包含 URL 的闭包来更新我的事件处理程序,但这样做的缺点是需要在添加新的事件处理程序之前删除旧的事件处理程序,这只会使事情变得更加复杂。
我当前的代码看起来像这样:
java - Selenium FirefoxDriver 初始化
当我尝试加载 Selenium FireFoxDriver 时,进程需要更多时间来调用浏览器。我已经尝试了很多选项,例如禁用自动更新等。但是所有的努力都是徒劳的。所以我决定在服务器启动时加载 FirefoxDriver(即,当容器初始化时,web.xml 中的加载启动时间为 0)。这种方法有什么缺点吗?另外请建议是否有更好的方法来做到这一点。
提前致谢!!!
firefox - 如何从 Firefox WebExtension 打开一个新选项卡,就像用户单击 + 打开一个新选项卡一样
我尝试了以下方法:
不幸的是,我无法about:newtab
使用tabs.create()
. 它会引发安全错误:
我应该如何about:newtab
从 Firefox WebExtension 打开?
google-chrome - 无法识别的清单键“应用程序”。谷歌浏览器警告
我已经为使用 Chrome 扩展 API 的 Firefox 创建了 Web 扩展。
但是 Firefox 需要application
输入manifest.json
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json
如果我为 Google Chrome 加载相同的扩展程序,Chrome 会发出以下警告:
尽管该扩展程序有效,但我不确定是否可以使用此清单文件将 Firefox Web 扩展程序发送到 Google Chrome 商店。
我可以为 Google Chrome 创建另一个项目,但我想保留一个文件夹,该文件夹可以同时适用于 Firefox 和 Google Chrome,而不会发出任何警告。
我应该如何在保持 Firefox 要求的同时修复此警告?
firefox - Firefox Web 扩展安装时的内容脚本注入
如果在 Firefox 的 manifest.json 中指定了内容脚本,Firefox 也会为已打开的选项卡加载内容脚本并执行它们,即使选项卡已经处于加载和就绪状态。
为已打开的选项卡安装扩展程序时,Google Chrome 不会添加任何内容脚本。为旧选项卡刷新页面时会加载内容脚本。
我想问的是Firefox的行为是预期的还是bug?