我的Chrome扩展程序manifest.json
中包含此内容:
...
"content_scripts": [
{
"matches": ["http://*.youtube.com/playlist*", "https://*.youtube.com/playlist*"],
"css": [],
"js": ["jquery-2.1.3.min.js", "myscript.js"]
}
]
这是myscript.js
:
console.log('Running extension code!');
安装扩展程序后,我进行了两次实验:
实验1:我直接转到https://www.youtube.com/playlist?list=foo
(通过粘贴地址栏中的网址并按<ENTER>
)。控制台按预期显示&#34;正在运行扩展代码!&#34;
实验2:我转到https://www.youtube.com
然后我手动导航到播放列表(通过点击链接),因此网址已更改为https://www.youtube.com/playlist?list=foo
。控制台无法显示消息,因此未加载扩展程序。
我猜实验2失败了,因为YouTube是单页应用程序(SPA)。在SPA中,URL通过代码事件进行更改。
问题:在这里使用content_scripts
的正确方法是什么?我不应该Chrome负责匹配网址而不是我吗? (即:这是一个错误吗?)