如何打开Firefox WebExtension选项页面作为选项卡,与about:addons分开

时间:2016-11-10 02:26:57

标签: javascript firefox firefox-addon firefox-webextensions

所以,我查看了WebExtensions API,但是我无法弄清楚如何打开与about:addons分开的HTML页面以获取选项。在加载项SDK中,您可以拥有resource://ext-id-/path/to/file.html。我已经尝试过访问目录Web并将HTML文件放在那里,但这似乎不起作用。

有没有人知道如何使用WebExtensions在自己的标签中打开选项HTML文件?

1 个答案:

答案 0 :(得分:6)

打开标签

标签中的选项页始终
如果您希望在选项卡中打开总是的选项页面,则可以将值open_in_tab的属性true添加到<{1}}键中< EM>的manifest.json :

options_ui

这将导致您的选项页面始终在选项卡中打开。点击你的扩展程序&#34;选项&#34;在"options_ui" : { "page": "options.html", "open_in_tab":true } 内,使用runtime.openOptionsPage()会在选项卡中打开您的选项页面。

感谢BigBlutHat提醒我这个选项。

在标签中,通常您的选项页面位于about:addons 中 您可以使用tabs.createruntime.getURL打开包含所需扩展程序中所需网址的新标签页,包括您的选项页面。特别是对于与 manifest.json 位于同一目录中的about:addons文件,以下内容有效:

options.html

无需通过网络访问并加载JavaScript:
您不需要将文件声明为Web可访问。该页面在后台上下文中运行,因此通过直接包含chrome.tabs.create({ url: chrome.runtime.getURL('/options.html') }); 标记的src中的文件(例如<script>)来加载JavaScript。这与弹出窗口相同。 This answer的扩展名使用与弹出窗口和选项页面相同的HTML和JavaScript。但是,它实际上并没有将该页面作为选项卡打开,但可以使用上面的代码完成。

解析相对网址
ChromeFirefox状态均为:

  

相对URL将相对于扩展程序中的当前页面。

注意:对于所有不同的<script src="/options.js"> API调用,Chrome和Firefox并不总是以相同的方式解析相对URL。例如,chrome.executeScript()的每个浏览器都有所不同。