chrome.runtime.sendMessage无法进行泛化

时间:2015-01-14 16:09:21

标签: javascript google-chrome google-chrome-extension chrome-runtime

案例1

我正在使用此代码段向我的后台页面发送请求,并收到消息

chrome.runtime.sendMessage({details: "Command1"}, function(response) {
              console.log(response.farewell);
});

当它被称为独立时,这种方法非常有效。

这是我的背景页面代码,它响应请求: -

if(typeof(request.details) != "undefined"){
        console.log("Detail Array was asked for !");
        sendResponse({farewell: "Some Data here"});
        console.log("Respo 1 sent");
    } 

正如预期的那样,在调用详细信息:来自内容脚本页面的command1时,我得到了预期的输出"这里的一些数据",回到我的内容脚本中

案例2

我正在尝试将此概括为一些请求,因此,我对内容脚本进行了更改,如下所示: -

function sendMessage(toSendKey, toSendVal, funcName){
chrome.runtime.sendMessage({toSendKey: toSendVal}, function(response) {
           console.log("Response received");
           respoObt = response.farewell;
           console.log(respoObt);
           funcName(respoObt);
         });

}

function doNothing(data){
    console.log(data);
}

sendMessage("details", "Command1", doNothing);

现在在使用适当的参数调用函数时,我可以在我的后台页面中看到两个控制台日志("详细数组被要求!"," Respo 1已发送") ,确认请求已到达,但是,发回的响应无法访问内容脚本页面。

可能的罪魁祸首是什么?我错过了什么吗?

0 个答案:

没有答案