Удлинитель Google Chrome открывает несколько вкладок на клик
-
26-09-2019 - |
Вопрос
Мой первый вопрос, надеюсь, я спрашиваю это правильно. Я искал по всему и не могу ничего найти на этом.
В принципе, у меня есть следующий код, то, что он делает, когда на странице YouTube.com/watch он показывает значок в адресной строке, если вы нажмете этот значок, он положил высокое качество большого пальца, который он реконструирован в локальную табличку, а затем открывает большой палец .html, который просто захватывает это значение LocalStorage и отображает изображение на странице. Я заметил, если я нажму в Enter в адресной строке, чтобы загрузить страницу и щелкнуть значок, он работает нормально, но если я перейду на другое видео через страницу и нажимаю на него, он открывает 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
.