2017-05-05 74 views
0

因此,我有以下代碼用於擴展,通過打開的選項卡與特定的URL循環。Chrome擴展如果else語句不執行其他

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條件爲真,並且if的指令被執行。 如果數組中沒有項目,則if條件爲false並且不執行任何操作。我的理解是,應該執行其他指令集。

回答

0

tabs.forEach爲數組中的每個元素調用傳遞給它的函數。如果該數組包含0個元素,則該函數將不會被調用,因此它不會到達檢查條件的地方。

只有當選項卡包含一個或多個元素且其中至少有一個元素將tab.url設置爲「」或「'時,您的其他情況纔會執行。

+0

就是這樣。 – IronTom