Как передать данные из 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"' не помогло. Что я упускаю? Заранее благодарен за помощь.


Ответы (0 шт):