2011-01-06 105 views
2

我的第一個問題,希望我問的是對的。我搜遍了,找不到任何東西。谷歌瀏覽器擴展程序打開多個標籤點擊

基本上,我有以下代碼,它的功能是在youtube.com/watch頁面上顯示地圖欄中的圖標,如果您單擊該圖標,則會將其重建的高質量縮略圖放入本地存儲然後打開thumb.html,它將抓取該localstorage值並在頁面上顯示圖像。我注意到,如果我點擊地址欄中的輸入來加載頁面,並單擊圖標,它可以正常工作,但如果我通過頁面導航到另一個視頻並單擊它,它會打開2頁,如果我轉到第3頁,它打開3頁,等等,等等。我只是不知道發生了什麼。

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) 
{ 
    updatedTab = tab; 
    updatedTabId = tabId; 
    if(changeInfo.status == 'complete') 
    { 
      if(updatedTab.url.indexOf('youtube.com/watch') != -1) 
      { 
       chrome.pageAction.show(tabId); 
       chrome.pageAction.onClicked.addListener(function(tab) 
       { 
        if(window === top) 
        { 
         var yt = tab.url.split('v='); 
         var yt = yt[1].split('&'); 
         var yURL = 'http://www.youtube.com/watch?v='+yt[0]; 
         var yThumb = 'http://i2.ytimg.com/vi/'+yt[0]+'/hqdefault.jpg'; 
         localStorage.setItem('ytHQthumb', yThumb); 
         chrome.tabs.create({'url': 'thumb.html'}); 
        } 
       }); 
      } 
    } 
}); 

回答

2

發現問題。我需要將chrome.pageAction.onClicked.addListener移到chrome.tabs.onUpdated.addListener之外。

相關問題