这个问题更多是为了他人的利益和我自己的好奇心,因为我现在已经综合了一个解决方法(使用"matches": ["http://*/*", "https://*/*"]
and if (location.hostname == "www.youtube.com")
.
无论如何,当我遇到这样的问题时,我会将代码分解成越来越简单的形式,直到它开始工作。然后我可以弄清楚是什么让代码出错了。但是我现在已经达到了它无法变得更简单并且仍然无法正常工作的地步。Chrome 只是不会将内容脚本注入任何 YouTube 页面。
文件(下面的 ZIP 链接)
清单.json:
{
"name": "test",
"version": "0",
"manifest_version": 2,
"content_scripts": [
{
"js": [
"test.js"
],
"matches": [
"*://youtube.com/*"
],
"run_at": "document_end",
"all_frames": true
}
]
}
测试.js:
alert("test");
进步
不起作用:
- 改变值并静态定义(无通配符)
matches
URL - 改变的值
run_at
- 改变的值
all_frames
- 改变脚本
test.js
- 在全新安装的 Windows 7 x64 上全新安装 Chrome v24.0.1312.57
是否有效:
- 将值更改为
matches
YouTube 以外的任何内容 matches
将值更改为"http://*/*", "https://*/*"
我觉得我在这里遗漏了一些非常明显的东西,但已经好几天了.. ;/