Pergunta

Minha primeira pergunta, espero que estou fazendo certo. Eu procurei por toda parte e não consigo encontrar nada nele.

Basicamente, eu tenho o seguinte código, o que ele faz está quando em uma página do youtube.com/watch, ele mostra um ícone na barra de endereços; se você clicar nesse ícone, ele é o polegar de alta qualidade que ele reconstruiu no local de armazenamento e depois abre o Thumb .html, que apenas agarra o valor do LocalStorage e exibe a imagem na página. Percebi que se eu pressionar Enter na barra de endereços para carregar a página e clicar no ícone, ele funciona bem, mas se eu navegar para outro vídeo através da página e clicar nela, ele abre 2 páginas, se eu for para uma 3ª página , abre 3 páginas, assim por diante, e assim por diante. Eu simplesmente não sei o que está acontecendo.

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'});
                    }
                });
            }
    }
});
Foi útil?

Solução

Encontrou o problema. Eu precisava mover o chrome.pageAction.onClicked.addListener fora do chrome.tabs.onUpdated.addListener.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top