创建chrome扩展名修改域名的css时,它无法正常工作,我该如何修复?

时间:2013-05-05 16:25:48

标签: javascript google-chrome google-chrome-extension

以下是我的代码:

chrome.tabs.onCreated.addListener(abcdefg);
chrome.tabs.onUpdated.addListener(function(tabId, info, tab, n) {
    if (info.status == 'complete') abcdefg(tab);
});

function abcdefg(tab) {
    var tabUrl = tab.url;
    if(n.url.indexOf("http://domain.com")>0&&n.url.indexOf("/page")<0) {
        chrome.tabs.insertCSS(tabId, {code: "body{display:none!important;}"});
    }
}

我做了身体显示:没有,所以我可以很容易地看到它是否正常工作。好吧它不起作用。我做错了什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

首先,您并不需要onCreated的监听器,因为无论如何都会在所有情况下触发onUpdatedtab.url可能在{onCreated中未定义1}}回调导致错误。所以我们只需将其修剪为onUpdated。像这样:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
  if(tab.url && tab.url.indexOf('http://www.domain.com') > -1){
    chrome.tabs.insertCSS(tabId, {code: "body{display:none!important;}"});
  }
});

在写出来的时候,我意识到你的问题是检查索引是否大于0。如果要检查是否存在从字符串开头开始的子字符串,则索引将始终为0,因此要么检查它是>= 0还是> -1,因为-1是什么在找不到字符串时返回。