在我的Google Chrome扩展程序中,我使用 manifest.json 加载内容脚本,如下所示:
"content_scripts": [
{
"matches": ["https://stackoverflow.com/questions/tagged/*sort=newest*"],
"css": ["content.css"],
"js": ["content.js"]
}
]
当我现在浏览到https://stackoverflow.com/questions/tagged/sql?sort=newest&pageSize=15时,content.js
已成功注入,但content.css
被忽略。
但是,当我将匹配模式更改为https://stackoverflow.com/questions/tagged/*
时,两者都会被加载并正确应用。
这是Chrome中的错误还是在网址中使用了多个星号?但是为什么它适用于JS呢? matches pattern documentation明确允许“< any chars>”在URL的路径部分。除了手动injecting CSS styles into the page之外,还知道如何做到这一点吗?
我也尝试过没有成功:
"permissions":["tab", "https://stackoverflow.com/"]
添加到清单"web_accessible_resources": ["content.css"]
添加到清单修改
情况正在恶化。我刚刚找到了include_globs并尝试了这个:
"content_scripts": [
{
"matches": ["https://stackoverflow.com/*"],
"include_globs": ["*/questions/tagged/*sort=newest*"]
"css": ["content.css"],
"js": ["content.js"]
}
]
JS只会注入最新的问题页面,但CSS现在应用于整个stackoverflow站点。 CSS模式匹配刚刚破解了吗?