如何打开浏览器扩展插件中包含的html文件



打开扩展名中包含的一个简单html文件时遇到了一些奇怪的问题。例如,我可以用browserAction打开HTML页面,但其他任何操作都不起作用。

我试着将其设置为的选项

"options_ui": {
"page": "form.html",
"open_in_tab": true,
"browser_style": true,
"chrome_style": true
},

然后我试着运行runtime.openOptionsPage(),但我得到了一个错误

openOptionsPage() is not a function

好的,所以我尝试的下一件事就是简单地用window.open打开一个新的选项卡

window.open(addon.extension.getURL('form.html'))

它打开了一个选项卡,但遗憾的是,我收到了文件被阻止的消息

iheelllncchdclcmfojmeajmcdolpjdf is blocked
Requests to the server have been blocked by an extension. Try disabling your extensions.
ERR_BLOCKED_BY_CLIENT

我现在没主意了。我真的找不到任何我需要的特定权限。似乎也没有人遇到过";不是函数";错误,这可能是这一切中最奇怪的事情。

有人知道我能做些什么来实现这一点吗?

报价:https://developer.chrome.com/docs/extensions/mv3/manifest/web_accessible_resources/

Web可访问资源是扩展插件内的文件,可以由网页或其他扩展插件访问。[…]

默认情况下,没有任何资源可以通过网络访问只有从扩展源加载的页面或脚本才能访问该扩展的资源。扩展作者可以使用web_accessible_resources清单属性来声明哪些资源是公开的以及哪些来源。

这些资源可通过URL chrome扩展名//[PACKING ID]/[PATH]在网页中使用,该扩展名可使用runtime.getURL方法生成。资源由适当的CORS头提供,因此它们可以通过XHR等机制使用。

从web源到扩展资源的导航将被阻止,除非该资源被列为web可访问

假设您的扩展正在添加指向扩展本身的链接,那么您必须在清单中显式添加以下策略:

{
"version": "1.0",
"manifest_version": 3,
"web_accessible_resources": [
{
"resources": [
"form.html"
],
"matches": [
"https://*/*" // ...probably more strict than this
]
}
],
// ... rest of manifest
}

相关内容

  • 没有找到相关文章

最新更新