javascript - 谷歌浏览器扩展程序点击打开多个标签

标签 javascript google-chrome tabs local-storage

我的第一个问题,希望我问对了。我找遍了,在上面找不到任何东西。

基本上,我有以下代码,它的作用是在 youtube.com/watch 页面上的地址栏中显示一个图标,如果您单击该图标,它会将重建的高质量缩略图放入本地存储中,并且然后打开 thumb.html,它只获取本地存储值并在页面上显示图像。我注意到如果我在地址栏中按回车键加载页面,然后单击该图标,它工作正常,但如果我通过该页面导航到另一个视频并单击它,它会打开 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'});
                    }
                });
            }
    }
});

最佳答案

发现问题。我需要将 chrome.pageAction.onClicked.addListener 移到 chrome.tabs.onUpdated.addListener 之外。

关于javascript - 谷歌浏览器扩展程序点击打开多个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4611954/

相关文章:

css - 删除事件选项卡上的额外填充 [wp]

javascript - 如果原始 src 的高度/宽度小于 "x"像素,是否更改图像 src?

javascript - 如果条件不适用于状态,则 Angular

javascript - Chrome v.44 中的 translate3d 存在错误?

html - Firefox 中的全尺寸 IFrame?

android - fragment 未附加到相应的 fragment

javascript - anchor 转换与选项卡的 Bootstrap 单击功能冲突

javascript - 将变量传递给函数时出错 javascript 不允许更改 CSS

JavaScript 64 位数字精度

internet-explorer - 为什么 font-awesome 不能在网络上工作而在本地主机上工作?