Выполнить скрипт в chrome расширении фона. js при отключении порта - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь запустить функцию, которая существует на моем веб-сайте, через расширение фона chrome после закрытия порта. это то, что я пробовал: background. js:

chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
    if(message.action == "run")
    {
        var port = chrome.runtime.connectNative("com.google.chrome.nessemailext.echo");

        // Send message to native application.
        port.postMessage(message.email);

        port.onDisconnect.addListener(function() { 
            chrome.tabs.query({}, function(tabs) {
                for(var i = 0; i<tabs.length;i++) {
                    url = tabs[i].url;
                    title = tabs[i].title;
                    if(url && url.indexOf("/D2") > -1 && title && title.indexOf("D2") > -1)
                    {
                        chrome.tabs.executeScript(tabs[i].id, {
                            "code": "var myScript = document.createElement('script');"
                                + "myScript.textContent = 'mask(false);';"
                                + "document.head.appendChild(myScript);"
                        });
                    }
                }
            });
            if (chrome.runtime.lastError) {
                console.log(chrome.runtime.lastError);
            }
        });
    }
});

работает, но иногда не может войти в функцию:

chrome.tabs.query({}, function(tabs) {

и вкладки переменных пусты .

Я пытался сделать это с помощью setTimeout, но возникла та же проблема ...

как я могу запустить функцию на моем веб-сайте в фоновом режиме. js или разговаривать с содержимым. js и оттуда запустить скрипт ...

tnx

...