Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Нужна помощь с доработкой скрипта расширения под Chrome (https://javascript.ru/forum/css-html-browser/71964-nuzhna-pomoshh-s-dorabotkojj-skripta-rasshireniya-pod-chrome.html)

Aetae 27.12.2017 22:34

Потому что чтоб отправить сообщение вкладке нужно использовать chrome.tabs.sendMessage с указанием конкретной вкладки куда слать.

BeleK0ss 28.12.2017 14:09

Огромное тебе спасибо! Все заработало. в таком вот виде:

//background.js
function handleTabRemoved(tab,response)
{
    updateTabsCount();
    if (response.isWindowClosing == false)
    {
        chrome.tabs.query({ "active": true, "windowId": response.windowId }, function (tabs)
        {
            chrome.tabs.reload(tabs[0].id, function ()
            {
                began(tabs[0].id);
            });
        });
    }
}
    
 function began(tabId) {
	setTimeout( function() {
		chrome.tabs.sendMessage(tabId, {greeting: "hello"}, function(response) 
   {});
   }, 1000);
}


//content.js
function handleTabClick() {

				document.getElementById('0').click();

}


chrome.runtime.onMessage.addListener(
  function(request, sender) {
    if (request.greeting == "hello"){
   handleTabClick();
    }
  });


Без задержки chrome.tabs.sendMessage выполняется раньше и не работает. Пришлось ставить задержку. Очень благодарен тебе за советы!
А если ли возможность заменить setTimeout на что нибудь по проще? Что бы функция выполнялась после загрузки страницы? Пробовал оформить через window.onload но функция запускается единоразово после обновления расширения и после не выполняется вовсе...


Часовой пояс GMT +3, время: 07:41.