Pull to refresh

Comments 5

Про setTimeout в openImagesPage() в статье ни слова. А без него не работает :-(. Причем с какой-то невнятной ошибкой.

Да действительно, пропустил этот блок. Теперь исправлено. Спасибо за замечание.

Отличная статья. Только вот не могу разобраться, данные между вкладками передаются 1 раз из примерно 20. Так как я новичок, то как отследить почему так происходит. Т.е. плагин выгружает список на вторую страницу раз из 20. Хотя первая страница отрабатывает на отлично.

Все дело в функции openImagesPage. Скорее всего новая вкладка активируется раньше, чем ей отправляется сообщение. Попробуйте увеличить таймаут, сделайте его, например 500 миллисекунд, а не 100.

Кроме того, в последних версиях Chrome API, свойство "selected" для функции chrome.tabs.create стало deprecated, и рекомендуется использовать "active" вместо него.

Я эти два момента исправил в статье. Вот последняя версия openImagesPage:

function openImagesPage(urls) {
    // Создать новую вкладку браузера с HTML-страницей интерфейса  
    chrome.tabs.create({"url": "page.html",active:false},(tab) => { 
        setTimeout(()=>{
          // отправить список URL в новую вкладку
          chrome.tabs.sendMessage(tab.id, urls, (resp) => {
              // сделать вкладку активной
              chrome.tabs.update(tab.id, {active: true});
          })
        },500)
    });
}

Жаль что не могу поставить плюсик. Дело было в active:false.

Sign up to leave a comment.

Articles