Расширение Google Chrome, открывающее несколько вкладок по клику - PullRequest
2 голосов
/ 06 января 2011

мой первый вопрос, надеюсь, я правильно его задаю.Я искал по всему и ничего не могу найти на нем.

По сути, у меня есть следующий код, что он делает, когда на странице youtube.com/watch показывает значок в адресной строке, еслиВы нажимаете этот значок, он помещает большой палец большого пальца, который он реконструировал в localstorage, а затем открывает thumb.html, который просто захватывает значение localalstorage и отображает изображение на странице.Я заметил, что если я нажал клавишу ввода в адресной строке, чтобы загрузить страницу, и щелкнул значок, он работает нормально, но если я перехожу к другому видео через страницу и нажимаю на него, он открывает 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'});
                    }
                });
            }
    }
});

1 Ответ

2 голосов
/ 06 января 2011

Нашел проблему. Мне нужно было переместить chrome.pageAction.onClicked.addListener за пределы chrome.tabs.onUpdated.addListener.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...