我正在尝试创建我的第一个Chrome扩展程序。
它基本上是特定元素的广告拦截器,在本例中是Facebook评论部分。
它适用于all_urls,但不适用于该特定域。
清单文件:
{
"name": "My extension",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [
{
"matches": ["http://visir.is/*"], //where your script should be injected
"css": ["style.css"] //the name of the file to be injected
}
]
}
style.css文件:
.fbcomment { display:none; }
任何想法如何纠正“匹配”?
我已尝试https://developer.chrome.com/extensions/match_patterns中指定的*://visir.is/*
,但它仅适用于all_urls
答案 0 :(得分:0)
尤,
你走错了路。您的扩展程序应该在Facebook网站上运行,因此清单中的匹配语句必须完全符合以下条件:
"匹配":[" https://www.facebook.com/ *"]
您需要在时间轴中查找所有注释(最有可能是css类),检测目标站点地址的存在(//visir.is/),然后隐藏这些注释。
由于时间轴会动态加载更多帖子,因此您还需要观察新节点并在其上应用您的功能(请参阅下面我的Chrome扩展程序中的示例):
var obs = new MutationObserver(function (mutations, observer) {
for (var i = 0; i < mutations[0].addedNodes.length; i++) {
if (mutations[0].addedNodes[i].nodeType == 1) {
$(mutations[0].addedNodes[i]).find(".userContentWrapper").each(function () {
injectFBMButton($(this));
});
}
}
injectMainButton();
});
obs.observe(document.body, { childList: true, subtree: true, attributes: false, characterData: false });
&#13;