Chrome扩展程序 - 内容脚本未发送响应(未定义)

时间:2014-03-26 21:12:59

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

所以我正在制作谷歌浏览器扩展程序,我在邮件系统方面遇到了一些问题。

我创建了一个消息传递函数,允许您通过在参数中定义消息来将消息发送到内容脚本或后台脚本,此函数位于弹出脚本中。

我的问题是,当内容脚本发送响应时,弹出脚本会将其视为未定义。

这是我的代码:

弹出脚本:

// The messaging function
function passMessage(message, location){
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {

        //Send the message to a content script or background?
        switch (location){
            case "content":
                chrome.tabs.sendMessage(tabs[0].id, {popupMessage: message}, function(response) {
                    return response;
                });
                break;

            case "background":
                chrome.extension.sendMessage(tabs[0].id, {popupMessage: message}, function(response) {
                    return response;
                });
                break;
        }

    });
}



// Call the function like so:
var x = passMessage( "Hello world!" , "content" );

// Undefined (Should be "Hi popup!")
console.log( x ); 

内容脚本:

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.popupMessage == "Hello world!"){ 
        // Logs "Hello world!"
        console.log(request.popupMessage); 

        // Should send "Hi popup!" back.
        sendResponse("Hi popup!"); 
    }
});

所以基本上除响应之外一切都很完美。

有谁知道如何解决这个问题? 谢谢!

0 个答案:

没有答案