我有一个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(没有src
或onclick
属性的脚本),如果你想使用内联JS,请参阅本主题了解更多信息。