Chrome扩展内容脚本匹配模式为本地URL/文件?



我有一个Chrome扩展,当我点击弹出页面上的一个按钮,它发送一个消息到后台脚本。这个后台脚本然后创建一个选项卡,URL只是在扩展安装中使用的index.html文件。(它在扩展文件夹的根目录)

chrome.tabs.create({ url: "index.html" }, (tab) => { });

它确实用正确的index.html创建了标签页,但是地址栏/omnibox中的url是:

chrome-extension://pdkkaldkelomkfiohdhcklphjclggmoh/index.html

问题是我需要为这个index.html和https://developer.chrome.com/docs/extensions/mv3/match_patterns/的官方Chrome文档附加一个内容脚本如:chrome-extension://

没有匹配我尝试使用:和file:///*,没有错误提示,但是当我在index.html页面时,在Dev Tools中检查Content Scripts选项卡,但是Content .js没有加载。

也测试了:

"content_scripts": [
{
"matches": [
"*://pdkkaldkelomkfiohdhcklphjclggmoh/index.html"
],
"js": [
"content.js"
]
}
]

没有错误信息,并且有完整的路径:"chrome-extension://pdkkaldkelomkfiohdhcklphjclggmoh/index.html"刷新扩展名时出现错误:

Invalid value for 'content_scripts[0].matches[0]': Invalid scheme.
Could not load manifest.

它不接受"chrome-extension://"匹配字符串的一部分。

我可能做错了什么,因为我确信我可以使用一个本地文件,将被安装为扩展文件集的一部分。

有任何想法请让我知道,并提前感谢!

内容脚本旨在添加到不属于您自己的扩展而index.html属于您的扩展的外国页面,技术含义是URL开始与chrome-extension://yourExtensionID/在Chrome或moz-extension://yourExtensionID/在FF。

所以只需在index.html:中加载脚本

<script src="index.js"></script>

请注意,默认情况下扩展页面不允许内联JS(没有srconclick属性的脚本),如果你想使用内联JS,请参阅本主题了解更多信息。

相关内容

  • 没有找到相关文章

最新更新