2013-11-23 3 views
0

안녕하세요. 크롬 확장 기능으로 웹 사이트를 설정했습니다. 문제는 많은 탭이 열리는 확장 아이콘을 클릭하는 횟수입니다. 확장 아이콘 탭이 이미 열려 있는지 확인해야합니다. 이미 열려있는 경우 해당 탭을 표시합니다. 그렇지 않으면 다른 탭을 만듭니다. 어떻게 할 수 있습니까? 제발 도와주세요. 이것은 간단한 문제라는 것을 알고 있습니다. 알아낼 수 없습니다. 제발 도와주세요. 가 여기 내 background.js이크롬 확장의 탭 복제 방지 방법

function getGmailUrl() { 
    return "http://calpinemate.com/"; 
    } 
    function isGmailUrl(url) { 

     return url.indexOf(getGmailUrl()) == 0; 
     } 
     chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.getAllInWindow(undefined, function(tabs) { 
for (var i = 0, tab; tab = tabs[i]; i++) { 
    if (tab.url && isGmailUrl(tab.url)) { 
    console.log('Found Gmail tab: ' + tab.url + '. ' + 
       'Focusing and refreshing count...'); 
    chrome.tabs.update(tab.id, {selected: true});   
    return; 
    } 
    } 
console.log('Could not find Gmail tab. Creating one...'); 
chrome.tabs.create({url: getGmailUrl()}); 
    }); 

}); 

나는 problem.Please 나에게

답변

0

문제를 도움이되고 있는지 알 수 없습니다 생각입니다 그것을 위해 루프 엉망이되어 당신의 조건, 그것은 너무 모든 탭에서 루핑되지 않습니다.
BTW, chrome.tabs.getAllInWindow은 (는) 더 이상 사용되지 않습니다. 대신 chrome.tabs.query을 사용하십시오 (아래 참조).

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.query({ 
     url: "http://calpinemate.com/*", 
     currentWindow: true 
    }, function(tabs) { 
     if (tabs.length > 0) { 
      var tab = tabs[0]; 
      console.log("Found (at least one) Gmail tab: " + tab.url); 
      console.log("Focusing and refreshing count..."); 
      chrome.tabs.update(tab.id, { active: true }); 
     } else { 
      console.log("Could not find Gmail tab. Creating one..."); 
      chrome.tabs.create({ url: getGmailUrl() }); 
     } 
    }); 
}); 
+0

안녕하세요. 답장을 보내 주셔서 대단히 감사합니다. 답장을 보내 알려 드리겠습니다. – user1991

+0

정말 고마워. 잘 했어 .. – user1991

관련 문제