因此,我有一个扩展程序的以下代码,该扩展程序循环使用特定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中的指令集。
答案 0 :(得分:0)
tabs.forEach为数组中的每个元素调用传递给它的函数。如果数组包含0个元素,则不会调用该函数,因此它不会达到if条件被检查的程度。
只有当标签包含一个或多个元素且其中至少有一个元素的tab.url设置为“”或“”时,才会执行您的其他情况。