-1

我有这个代码的 chrome 扩展:

function tabsUpdated(tabId, changeInfo, tab) {
    if(changeInfo.status != "complete") return;

    console.log(tab.url);
        //displays 'http://www.entraineurdefootonline.fr/League/Transferlist/'

    console.log(tab.url.indexOf('League/TransferList')); //displays -1

    if (tab.url.indexOf('League/TransferList') > -1){
        chrome.pageAction.show(tab.id)
        loadScripts(tabId);
    }
}

如您所见,tab.url.indexOf('League/TransferList')返回-1应该返回的位置36。这很奇怪,它运行了好几个星期,今天没有做任何改变。我做了一个小提琴,证明问题不在于代码。我尝试删除并重新加载扩展名(使用加载解压扩展名)。

也许有人已经面对过这种怪事?

4

2 回答 2

1

您只是大小写字母有问题。在 URL 中它Transferlist用小写字母表示l,而您TransferList用大写字母进行检查L

作为一种解决方案,您可以在比较它们之前使用toLowerCase()(或使用大写)将所有字符串转换为小写:toUpperCase()

// ...
if (tab.url.toLowerCase().indexOf('League/TransferList'.toLowerCase()) > -1){
// ...
于 2013-05-23T06:57:40.450 回答
1

要添加到其他 asnwers,如果您的字符串可以是大写或小写,那么如果需要,您可以使用快速不区分大小写的正则表达式:

if (/transferlist/i.test(tab.url)) {
  ...
}
于 2013-05-23T06:59:55.193 回答