2011-01-06 79 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之外。

相关问题