Не отсылается сообщение с переменной, “Could not establish connection. Receiving end does not exist.”

358
09 августа 2017, 21:53

Необходимо чтобы Chrome-плагин работал просто в фоне. Но никак не могу послать переменную, множество похожих тем просмотрел и всё как в их решениях делаю но всё безрезультатно.

manifest.json

{
  "manifest_version": 2,
  "name": "iCept",
  "version": "0.1.0",
  "default_locale": "ru",
  "permissions": [
    "tabs"
  ],
  "web_accessible_resources": ["imgs/*", "scripts/*"],
  "background": {
    "scripts" : ["background.js", "scripts/contentscript.js"],
    "persistent": false
  },
  "content_scripts": [{
    "matches": ["*://*/*"],
    "js": ["scripts/contentscript.js"],
    "run_at": "document_end"
  }],
  "browser_action": {
    "default_popup": "popup.html",
    "default_icon": "imgs/icon1.png",
    "default_title": "__MSG_browser_action__"
  },
  "icons": {
    "16": "imgs/icon1.png",
    "48": "imgs/icon2.png",
    "128": "imgs/icon3.png"
  }
}

background .js

chrome.runtime.onMessage.addListener(
  function(request, sender, response) {
    if(request.msdg == 'getDOM') {
        var _html = document.all[0];
        console.log('--EVENT-- onMessage: ' );
        sendResponse( { 'htmlContent': _html.innerHTML } );
    }
    return true;
  }
);

contentscript.js

chrome.tabs.onActivated.addListener(
  function() {
    chrome.tabs.query (
        { active: true, currentWindow: true },
        function(tabs) {
            if (tabs.length > 0) {
                chrome.tabs.sendMessage(
                    tabs[0].id,
                    { msdg: 'getDOM' },
                    function(response) {
                        if (chrome.runtime.lastError) {
                            console.log('--ERROR-- ', chrome.runtime.lastError);
                        }
                        else {
                            console.log('--EVENT-- onActivated: ' + response.htmlContent);
                        }
                    }
                );
            }
        }
    );
  }
);

chrome.tabs.onUpdated.addListener(
  function() {
    chrome.tabs.query (
        { active: true, currentWindow: true },
        function(tabs) {
            if (tabs.length > 0) {
                chrome.tabs.sendMessage(
                    tabs[0].id,
                    { msdg: 'getDOM' },
                    function(response) {
                        if (chrome.runtime.lastError) {
                            console.log('--ERROR-- ', chrome.runtime.lastError);
                        }
                        else {
                            console.log('--EVENT-- onUpdated: ' + response.htmlContent);
                        }
                    }
                );
            }
        }
    );
  }
);
READ ALSO
Поменять блоки div местами на JS

Поменять блоки div местами на JS

Как поменять 2 блока div местам, где бы они не находились на странице

298
HTML+CSS?+JS Слайдер текста

HTML+CSS?+JS Слайдер текста

Есть шаблон сайта: http://demoflytheme

287
Cocos Creator: работа с файлами

Cocos Creator: работа с файлами

Нигде не могу найти как работать с файлами в Cocos CreatorРаботаю на javascript, перешарил весь интернет, кажется, даже выучил корейский, но нигде не могу...

355
back/forward chrome обновляет страницу

back/forward chrome обновляет страницу

На сайте prestashop стоит фильтр blocklayered v 22

263