如何将 Firefox WebExtension 选项页面作为选项卡打开,与 about:addons 分开
How to open a Firefox WebExtension options page as a tab, separate from about:addons
所以,我查看了 WebExtensions API,但我一直无法弄清楚如何打开与 about:addons
分开的 HTML 页面以获取选项。在附加 SDK 中,您可以有 resource://ext-id-/path/to/file.html
。我试过使一个目录可以通过 Web 访问并在其中放置一个 HTML 文件,但这似乎不起作用。
有谁知道如何使用 WebExtensions 在它自己的选项卡中打开选项 HTML 文件?
打开标签页
选项页面始终在选项卡中:
如果您希望您的选项页面始终在选项卡中打开,您可以将值为true
的属性open_in_tab
添加到options_ui
输入 manifest.json:
"options_ui" : {
"page": "options.html",
"open_in_tab":true
}
这将导致您的选项页面始终在选项卡中打开。从 about:addons
中单击您的扩展程序的 "Options" 和使用 runtime.openOptionsPage()
都会导致您的选项页面在选项卡中打开。
感谢 BigBlutHat 提醒我这个选项。
在选项卡中,通常您的选项页面在 about:addons
:
内
您可以使用 tabs.create
and runtime.getURL
在您的扩展程序中打开一个新选项卡,其中包含您想要的任何 URL,包括您的选项页面。专门针对与 manifest.json 位于同一目录中的 options.html
文件,以下工作:
chrome.tabs.create({
url: chrome.runtime.getURL('/options.html')
});
不需要网络访问和加载JavaScript:
您不需要将文件声明为可通过网络访问。该页面在后台上下文中运行,因此通过直接将文件包含在 <script>
标记的 src
中(例如 <script src="/options.js">
)来加载 JavaScript。这与您对弹出窗口所做的相同。 有一个扩展,使用相同的 HTML 和 JavaScript 作为弹出页面和选项页面。但是,它实际上并没有显示该页面作为选项卡打开,但可以使用上面的代码完成。
解析相对URLs:
两者都Chrome and Firefox状态:
Relative URLs will be relative to the current page within the extension.
注意:对于所有不同的 chrome.*
API 调用,Chrome 和 Firefox 并不总是以相同的方式解析相对 URL。例如,.
在每个浏览器中都是不同的
所以,我查看了 WebExtensions API,但我一直无法弄清楚如何打开与 about:addons
分开的 HTML 页面以获取选项。在附加 SDK 中,您可以有 resource://ext-id-/path/to/file.html
。我试过使一个目录可以通过 Web 访问并在其中放置一个 HTML 文件,但这似乎不起作用。
有谁知道如何使用 WebExtensions 在它自己的选项卡中打开选项 HTML 文件?
打开标签页
选项页面始终在选项卡中:
如果您希望您的选项页面始终在选项卡中打开,您可以将值为true
的属性open_in_tab
添加到options_ui
输入 manifest.json:
"options_ui" : {
"page": "options.html",
"open_in_tab":true
}
这将导致您的选项页面始终在选项卡中打开。从 about:addons
中单击您的扩展程序的 "Options" 和使用 runtime.openOptionsPage()
都会导致您的选项页面在选项卡中打开。
感谢 BigBlutHat 提醒我这个选项。
在选项卡中,通常您的选项页面在 about:addons
:
内
您可以使用 tabs.create
and runtime.getURL
在您的扩展程序中打开一个新选项卡,其中包含您想要的任何 URL,包括您的选项页面。专门针对与 manifest.json 位于同一目录中的 options.html
文件,以下工作:
chrome.tabs.create({
url: chrome.runtime.getURL('/options.html')
});
不需要网络访问和加载JavaScript:
您不需要将文件声明为可通过网络访问。该页面在后台上下文中运行,因此通过直接将文件包含在 <script>
标记的 src
中(例如 <script src="/options.js">
)来加载 JavaScript。这与您对弹出窗口所做的相同。
解析相对URLs:
两者都Chrome and Firefox状态:
Relative URLs will be relative to the current page within the extension.
注意:对于所有不同的 chrome.*
API 调用,Chrome 和 Firefox 并不总是以相同的方式解析相对 URL。例如,