我的代码为
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
。它非常奇怪,它在数周内运行良好,今天还在做任何改变。我做了fiddle,证明问题不是来自代码。我尝试删除并重新加载扩展名(使用load unpacked扩展名)。
也许有人已经遇到过这种奇怪的现象?
答案 0 :(得分:1)
你只是有大写和小写字母的问题。在网址中,Transferlist
显示小写l
,而您使用大写TransferList
检查L
。
作为一种解决方案,您可以使用toLowerCase()
(或大写使用toUpperCase()
将所有字符串转换为小写字母,然后再进行比较:
// ...
if (tab.url.toLowerCase().indexOf('League/TransferList'.toLowerCase()) > -1){
// ...
答案 1 :(得分:1)
要添加其他答案,如果您的字符串可以是大写或小写,那么您可以根据需要使用快速不区分大小写的正则表达式:
if (/transferlist/i.test(tab.url)) {
...
}