Связь фона с контентом скрипта - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь установить связь со скриптом контента, но мой способ не работает.И я хочу знать, почему это не работает и как решить эту проблему (другие решения не работают. IDK почему).

Manifest.json:

{
    "manifest_version": 2,
    "name": "X",
    "version": "2.0",
    "browser_action": {
        "default_title": "title"
    },
    "permissions": [
        "activeTab",
        "tabs"
    ],
    "content_scripts": [
        {
            "matches": ["https://*/*"],
            "js": ["content_scripts/jquery.min.js", "content_scripts/script.js"],
            "run_at": "document_idle"
        }
    ],
    "background": {
        "scripts": ["background/background.js"]
    },
    "icons": {
        "16": "icon.png",
        "32": "icon.png",
        "48": "icon.png",
        "64": "icon.png",
        "128": "icon.png"
    }
}

Background.js:

chrome.tabs.query({active: true}, function (tabs) {
    tabs.forEach((cur, i)=>{    
        chrome.tabs.sendMessage(tabs[i].id, {"delBody": true})
    })
})

ContentScript:

chrome.runtime.onMessage.addListener(function(obj, sender) {
    if(obj.delBody)
        document.body.remove()
})

1 Ответ

0 голосов
/ 22 декабря 2018

Спасибо большое wOxxOm.Проблема была в

Фоновый скрипт запускается, когда ваше расширение загружается при запуске / обновлении браузера, когда ваш контент-скрипт еще не внедрен

Так что я решаю егокак это:

содержимое:

chrome.runtime.sendMessage({"getInfo": true})
chrome.runtime.onMessage.addListener(function(obj, sender) {  
    if(obj.delBody)
        document.body.remove()
})

фон:

chrome.runtime.onMessage.addListener(function(obj, sender) {  
    if(request.getInfo) {
        chrome.tabs.query({active: true}, function (tabs) {
            tabs.forEach((cur, i)=>{    
                chrome.tabs.sendMessage(tabs[i].id, {"delBody": true})
            })
        })
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...