-1

以下是我的代码:

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;}"});
    }
}

我做了 body display:none 以便我可以轻松查看它是否正常工作。那么它不工作。我做错了什么,我该如何解决?

4

1 回答 1

0

首先,您实际上并不需要监听器,onCreated因为onUpdated无论如何都会在所有情况下触发,并且tab.url可能在回调中未定义onCreated导致错误。所以让我们把它修剪成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 是未找到字符串时返回的值。

于 2013-05-05T18:34:03.980 回答