Chrome扩展程序适用于比应有的更多网址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chrome扩展程序适用于比应有的更多网址相关的知识,希望对你有一定的参考价值。
所以,我正在努力制作一个仅适用于www.google.com/bbb及其子网页的扩展程序,例如www.google.com/bbb/ccc,而不是www.google.com/aaa。
我的清单有权限:
"permissions": ["tabs", "http://www.google.com/bbb*"],
但它仍然适用于www.google.com下的任何页面,而不仅仅是我想要的www.google.com/bbb。
所有这些都在background.js中运行。
从the docs不是很清楚,但是(它是bug或者一个特性)主机匹配模式可以在manifest的permissions
属性中声明,并不关心路径:
"[scheme]:[host]/*"
它只适用于scheme
和host
,并将忽略path
部分。
由于qazxsw poi以编程方式注入,您可以手动基于路径进行过滤:
you seem
注意:如果没有“/* In `manifest.json` */
...
"permissions": [
"tabs",
"http://www.google.com/"
],
...
/* In `background.js` */
// ...some event was captured, involving tab <tabX>...
...
var urlRegex = /^http://www.google.com/bbb/;
if (urlRegex.test(tabX.url)) {
injectCSS(tabX.id);
} // ...else do not inject CSS
...
”权限,这可能同样有效,但包括它更有效,因为它减少了后台页面必须检查(和拒绝)的URL数量。即它只需要检查以“http://www.google.com/”开头的网址
我知道这是一个古老的问题,但这经过长时间的追捕帮助了我...(╭ರ_•)
您可以在清单文件的http://www.google.com/中添加文件,并使用其"content_scripts"
属性,就像编写"matches"
URL一样。然后"permissions"
使用其refine your content script matches,"exclude_matches"
和"exclude_globs"
属性(其中“globs”是您要包含或排除的URL的片段)。所以:
"include_globs"
请记住,要实现您的示例,您需要 "content_scripts": [
{
"matches": [
"http://www.google.com/bbb/*"
],
"js": [
"src/inject/your_scripts.js"
],
"css": [
"src/inject/your_styles.css"
],
"run_at": "document_end"
}
],
,因此在DOM完成后立即注入文件,但在加载图像和帧之类的子资源之前(根据上面的链接)。希望这有助于某人!
以上是关于Chrome扩展程序适用于比应有的更多网址的主要内容,如果未能解决你的问题,请参考以下文章