Javascript 如何匹配youtube';chrome扩展中的url?
我试图让SimplesChrome扩展在youtube(内容脚本)中工作,但它似乎无法正常工作 奇怪的是,它有时有效,而有些简单却不行 我的最终目标是使它只在视频URL中工作,但在此之前我被卡住了 我最初试过:Javascript 如何匹配youtube';chrome扩展中的url?,javascript,jquery,google-chrome,content-script,Javascript,Jquery,Google Chrome,Content Script,我试图让SimplesChrome扩展在youtube(内容脚本)中工作,但它似乎无法正常工作 奇怪的是,它有时有效,而有些简单却不行 我的最终目标是使它只在视频URL中工作,但在此之前我被卡住了 我最初试过: "matches": [ "http://www.youtube.com/*" ] 没有任何成功,我觉得很奇怪,所以我想这是我的第一个问题,因为在我做的另一个扩展中,它对http://twitter.com/ 我读了一些youtube扩展的代码,其中一个使用: "matches": [
"matches": [ "http://www.youtube.com/*" ]
没有任何成功,我觉得很奇怪,所以我想这是我的第一个问题,因为在我做的另一个扩展中,它对http://twitter.com/
我读了一些youtube扩展的代码,其中一个使用:
"matches": [ "*://*.youtube.com/*" ]
奇怪的是,这只在某些时候起作用,而我无法复制/理解什么时候起作用。当我重新加载页面时,它肯定不起作用,但在某些URL中它只是起作用
实际脚本是用于调试的基本脚本:
$(window).load(function() {
alert(2);
});
所以我对这种不一致的行为感到困惑
编辑:
此url似乎不起作用:
{
"name": "__MSG_extname__",
"version": "0.1",
"default_locale": "en",
"manifest_version": 2,
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png" },
"content_scripts":[
{
"matches": [ "*://*.youtube.com/*" ],
"js": ["jquery.min.js", "script.js"]
}
],
"web_accessible_resources": ["images/down-arrow.png"]
}
您需要发布或链接到整个
manifest.json
,但最可能的问题是$(窗口).load(…
因此,将
“run\u at”:“document\u end”
添加到清单中,以确保脚本在可预测的时间运行,并且在window.onload之前运行
~~
接下来,。根据需要检查并禁用其他扩展
~~
最后,可能是YouTube通过AJAX加载了一些页面——尽管我目前找不到这样的情况。AJAX加载的页面不会重新加载您的内容脚本。如果您发现AJAX加载了“新”页面的情况,(1)在此处评论配方,(2)您可以。(请注意,waitForKeyElements.js
将通过清单而不是@require
指令添加。)您能提供一些对您的脚本不起作用的URL吗?我已经更新了这个问题,它看起来确实是随机的:(似乎与URL无关。“run\u at”:“document\u end”
似乎解决了这个问题,非常感谢!