سؤال

سؤالي الأول ، آمل أن أسألها بشكل صحيح. لقد بحثت في كل مكان ولم أجد أي شيء على ذلك.

في الأساس ، لدي الكود التالي ، ما يفعله هو عندما يكون على صفحة youtube.com/watch أيقونة في شريط العناوين ، إذا قمت بالنقر فوق هذا الرمز ، فهو وضع الإبهام عالي الجودة الذي تم بناؤه في LocalStorage ثم يفتح الإبهام .html الذي يمسك فقط قيمة LocalStorage ويعرض الصورة على الصفحة. لقد لاحظت إذا قمت بالضغط على إدخال شريط العناوين لتحميل الصفحة ، وانقر فوق الرمز ، فهو يعمل بشكل جيد ، ولكن إذا انتقلت إلى فيديو آخر عبر الصفحة وانقر فوقه ، فهو يفتح صفحتين ، إذا ذهبت إلى الصفحة الثالثة ، يفتح 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top