通过google chrome内容脚本注入CSS。Manifest.json失败,但javascript成功?
我正在向YouTube页面注入一些JavaScript和CSS。似乎表明这应该是可能的。我做错什么了吗?这是YouTube的事吗?还是内容脚本中的注入被破坏了通过google chrome内容脚本注入CSS。Manifest.json失败,但javascript成功?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在向YouTube页面注入一些JavaScript和CSS。似乎表明这应该是可能的。我做错什么了吗?这是YouTube的事吗?还是内容脚本中的注入被破坏了 "content_scripts": [ { "matches": ["http://www.youtube.com/watch?v*"], "css": ["ChromeExtension/css/inject.css"], "js": ["Shared/js/thirdParty/jqu
"content_scripts": [
{
"matches": ["http://www.youtube.com/watch?v*"],
"css": ["ChromeExtension/css/inject.css"],
"js": ["Shared/js/thirdParty/jquery.js", "ChromeExtension/js/inject.js"]
}
],
"web_accessible_resources": [
"ChromeExtension/css/inject.css",
"ChromeExtension/icon.png"
]
这是我的相关manifest.json
现在,当我通过我的content_脚本请求inject.css时,我甚至没有在youtube.com上看到请求。但是,如果我将CSS文件定义为可通过web访问的资源,那么我可以通过javascript加载CSS,如下所示:
var link = document.createElement('link');
link.href = chrome.extension.getURL('ChromeExtension/css/inject.css');
link.rel = 'stylesheet';
document.documentElement.insertBefore(link);
有什么明显的原因吗?尝试在内容脚本中避免相对路径,将所有JS和CSS代码放在根路径中,然后重试
"content_scripts": [
{
"matches": ["http://www.youtube.com/watch?v*"],
"css": ["inject.css"],
"js": ["jquery.js", "inject.js"]
}
]
如果您有许多文件,并且不想干扰文件夹结构,则可以在加载时使用编程注入:
例:
可能重复的
onload = function (){
chrome.tabs.executeScript(null, {file: "path"});
}