所以,我查看了WebExtensions API,但是我无法弄清楚如何打开与about:addons
分开的HTML页面以获取选项。在加载项SDK中,您可以拥有resource://ext-id-/path/to/file.html
。我已经尝试过访问目录Web并将HTML文件放在那里,但这似乎不起作用。
有没有人知道如何使用WebExtensions在自己的标签中打开选项HTML文件?
答案 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.create
和runtime.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。但是,它实际上并没有将该页面作为选项卡打开,但可以使用上面的代码完成。
相对URL将相对于扩展程序中的当前页面。
注意:对于所有不同的<script src="/options.js">
API调用,Chrome和Firefox并不总是以相同的方式解析相对URL。例如,chrome.executeScript()
的每个浏览器都有所不同。