创建Chrome扩展程序以隐藏DIV显示:无;在特定页面上

时间:2015-01-06 12:13:01

标签: html css google-chrome google-chrome-extension

我正在尝试创建我的第一个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

1 个答案:

答案 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;
&#13;
&#13;