Chrome扩展if else语句不执行else

时间:2017-05-05 10:16:43

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

因此,我有一个扩展程序的以下代码,该扩展程序循环使用特定URL的打开选项卡。

chrome.browserAction.onClicked.addListener(function(tab) {
console.log('Get URL');
chrome.tabs.query(
    {currentWindow: true, url: 'https://www.google.com/*'},
    function(tabs) {
    tabs.forEach(function(tab) {
      console.log('Tab ID, URL: ', tab.id, ' ', tab.url);
          if(tab.url !== '')
          {
            //tab.focus();
            console.log('if !== \'\'');
            chrome.browserAction.setBadgeText({text: "YES"});
            chrome.browserAction.setBadgeBackgroundColor({color: "GREEN"})
            var updateProperties = {"active": true};
            chrome.tabs.update(tab.id, updateProperties, function(tab){ });
          }
          else
          {
            chrome.windows.create({ url: "https://www.google.com", type: "popup" });
            chrome.browserAction.setBadgeText({text: "NO"});
            chrome.browserAction.setBadgeBackgroundColor({color: "RED"})
          }
    });
});

如果数组包含项目,则if条件为true,并执行if的指令。 如果数组没有项目,则if条件为false并且不执行任何操作。我的理解是,应该执行else中的指令集。

1 个答案:

答案 0 :(得分:0)

tabs.forEach为数组中的每个元素调用传递给它的函数。如果数组包含0个元素,则不会调用该函数,因此它不会达到if条件被检查的程度。

只有当标签包含一个或多个元素且其中至少有一个元素的tab.url设置为“”或“”时,才会执行您的其他情况。