排除在Chrome扩展程序中无法使用的Glob?

时间:2012-12-09 22:30:53

标签: google-chrome google-chrome-extension youtube

所以我正在编写自己的chrome扩展,并且我有以下content_scripts:

"content_scripts": [{
    "matches": ["*://*.youtube.com/*"],
    "exclude_globs": ["*user*"],
    "css": ["youtube.css"]
}]

如您所见,它可以在youtube上运行。但它不能在youtube.com/user/上运行,这就是我有一个exclude_globs字段的原因。但是,它不起作用,它仍然在查看用户的频道时运行。有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

这是一个众所周知的bug in Chrome,可以解决使用insertCSS

的问题

<强>实施例

background.js中的关注代码将执行与manifest.json

相同的工作
//Use chrome.tabs.onUpdated.addListener(function(integer tabId, object changeInfo, Tab tab) {...}); as applicable to ensure it works on every page     
chrome.browserAction.onClicked.addListener(function (tab) {
        chrome.tabs.insertCSS(null, {
            code: "document.body.bgColor='red'",
            "all_frames": true
        });
    });

OR

//Use chrome.tabs.onUpdated.addListener(function(integer tabId, object changeInfo, Tab tab) {...}); as applicable to ensure it works on every page
 chrome.browserAction.onClicked.addListener(function (tab) {
    chrome.tabs.insertCSS(null, {
        file: {file:"content.css"},
        "all_frames": true
    });
});

确保您在清单

中拥有足够的权限
/* in manifest.json */
"permissions": [
  "tabs", "http://*/*"
],

<强>参考

a)insertCSS

b)Programmatic Injection

希望这有帮助。