如何将消息从background.js传递到内容脚本并处理DOM?

时间:2019-03-25 03:13:05

标签: javascript google-chrome-extension

我在后台脚本中有一个制表符更改侦听器,它将检查URL,并相应地向内容脚本发送一条消息以执行DOM操作。这段代码有什么问题?

我尝试了chrome.runtime。以及chrome.tabs。 API。另外,console.log()在content.js中不起作用。

background.js

ClassA classA = new ClassA();
ClassB classB = new ClassB(classA.action());
System.out.println(classB.getTemp());  //result will be 'hi'

content.js

chrome.tabs.onActivated.addListener(function(activeInfo) {
    chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
        let arr = tabs[0].url.split('/');
        let url = arr[0] + "//" + arr[2];
        if(url=="https://youtube.com"){
            chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
                chrome.tabs.sendMessage(
                    tabs[0].id, {action: "open_dialog_box"}, function(response) {console.log(response)}
                );  
            });
        }
    });
});

manifest.json

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
    console.log(request);
    if (request.msg === "youtube_action") {
        //console.log(request.data.subject)
        alert("kdjfnodf");
    }
    return true;
});

0 个答案:

没有答案