Задать вопрос
@BlueOuster

Как передать данные из background в content скрипт в расширении Хрома при переходе на новую страницу?

Пишу расширение для хрома. Нужно поймать смену url на текущей вкладке и отправить некоторые данные из background скрипта в content скрипт Для простого примера взял сайт ВШЭ.
background.js:
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
    if (changeInfo.url == "https://www.hse.ru/" && changeInfo.status == "complete") {
        var sendObj = {
            "myMessage": "this is main page"
        };
        chrome.tabs.sendMessage(tabId, sendObj);
    } else if (changeInfo.url == "https://www.hse.ru/distant" && changeInfo.status == "complete") {
        var sendObj = {
            "myMessage": "this is some side page"
        };
        chrome.tabs.sendMessage(tabId, sendObj);
    }
});


content.js:
chrome.runtime.onMessage.addListener(function(data) {
    console.log(data.myMessage);
});


Интересно то, что на сайтах, где реализован History API, то есть страницы открываются без перезагрузки вкладки, этот код работает. Если при переходе на новый адрес вкладка перезагружается - уже не работает. Грешил сначала на то, что страница просто не успевает загрузиться к моменту, когда ей отсылается сообщение, но 'changeInfo.status == "complete"' не помогло. Что я упускаю? Заранее благодарен за помощь.
  • Вопрос задан
  • 215 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы