Javascript 在单击按钮时从内容脚本打开选项页?

Javascript 在单击按钮时从内容脚本打开选项页?,javascript,google-chrome-extension,firefox-addon-webextensions,content-script,Javascript,Google Chrome Extension,Firefox Addon Webextensions,Content Script,我试图通过内容脚本从一个注入按钮打开我的web扩展选项页面。以下是设置: 清单设置: "options_ui": { "page": "options/options.html", "open_in_tab":true }, "web_accessible_resources": ["icons/icon.png", "icons/icon64.png","options/options.html"] <a href="moz-extension://1f82d05-3a

我试图通过内容脚本从一个注入按钮打开我的web扩展选项页面。以下是设置:

清单设置:

"options_ui": {
    "page": "options/options.html",
    "open_in_tab":true
},
"web_accessible_resources": ["icons/icon.png", "icons/icon64.png","options/options.html"]
<a href="moz-extension://1f82d05-3abf-4bea-80e2-db87e97486d3/options/options.html" target="_blank">Settings</a>
content script.js:

"options_ui": {
    "page": "options/options.html",
    "open_in_tab":true
},
"web_accessible_resources": ["icons/icon.png", "icons/icon64.png","options/options.html"]
<a href="moz-extension://1f82d05-3abf-4bea-80e2-db87e97486d3/options/options.html" target="_blank">Settings</a>
如图所示,您的内容脚本实际上是一块HTML,而不是JavaScript,正如所预期的那样。所以它不起作用。也许那不是你真正的代码,只是你创造的

但是,假设您确实调整了内容脚本,添加了一个按钮并附加了一个侦听器(我认为这超出了这个问题的范围)。如何打开选项页

规范的方法是调用,但不是调用API

两种选择:

  • 坚持使用
    打开选项页()
    。在这种情况下,您需要一个侦听消息的后台(事件)页面,然后需要打开选项页面

    这种方法的优点是,您不需要使选项页可以通过web访问

  • 如果您坚持直接从content script/
    a
    标记打开页面,您可以,但是您需要为扩展实例获取动态分配的UUID

    选项页面的URL不是固定的,但应通过
    browser.runtime.getURL(“options.html”)
    获取,并且该URL应在链接创建中使用

    此方法要求将其声明为web可访问

  • 如图所示,您的内容脚本实际上是一块HTML,而不是JavaScript,正如所预期的那样。所以它不起作用。也许那不是你真正的代码,只是你创造的

    但是,假设您确实调整了内容脚本,添加了一个按钮并附加了一个侦听器(我认为这超出了这个问题的范围)。如何打开选项页

    规范的方法是调用,但不是调用API

    两种选择:

  • 坚持使用
    打开选项页()
    。在这种情况下,您需要一个侦听消息的后台(事件)页面,然后需要打开选项页面

    这种方法的优点是,您不需要使选项页可以通过web访问

  • 如果您坚持直接从content script/
    a
    标记打开页面,您可以,但是您需要为扩展实例获取动态分配的UUID

    选项页面的URL不是固定的,但应通过
    browser.runtime.getURL(“options.html”)
    获取,并且该URL应在链接创建中使用

    此方法要求将其声明为web可访问


  • 任何错误消息?请参阅web\u accessible\u resources上的MDN文章-UUID是随机的,您应该在js代码中使用browser.runtime.getURL来获取真实的URL。任何错误消息?请参阅web\u accessible\u resources上的MDN文章-UUID是随机的,您应该在js代码中使用browser.runtime.getURL来获取真实的URL。我在js代码中使用固定的id清单为:“应用程序”:{“gecko”:{“id”:“{adacfr40-acra-e2e1-8ccb-e01fd0e08bde}}}”,扩展id和UUID不同。browser.runtime.getURL(“options.html”)工作:),感谢尝试使用此设置选项页面的主题-但这不起作用?我甚至在WebAccessible下添加了所有这些文件。我在清单中使用了一个固定的id,如:{“gecko”:{“id”:“{adacfr40-acra-e2e1-8ccb-e01fd0e08bde}}”,扩展id和UUID是不同的。browser.runtime.getURL(“options.html”)工作了:),感谢尝试使用它来设置选项页面的主题-但这不起作用?我甚至将所有这些文件都添加到web Access下。