回调谷歌Chrome扩展

时间:2011-07-31 03:43:42

标签: callback google-chrome-extension

我正在撰写Google Chrome扩展程序(在此过程中学到了很多东西)。回调函数有点神秘。我开始研究这个主题来解决我发布的早期问题中的问题,并从@serg发现了一个包含我可以使用的模型的帖子。这是解决方案:

function getKeyWords(action, callback){
    chrome.extension.sendRequest(
            {
                cmd: action
            },
            function(response)
            {
                callback(response.keyWordsFound);
            }
    );
}

var keyWords="";
getKeyWords("sendKeyWords", function(reply) {
    keyWordList=reply;

    for (var i = 0; i<keyWordList.length; ++i)
    {
        keyWords=keyWords+" "+keyWordList[i];
    }
    msgComment1.innerHTML="<strong>"+keyWords+"</strong>";
    console.log("Reply is:", keyWords);
});

现在我想扩展这个解决方案,但这次函数必须返回两个参数而不是一个。我将代码修改为我能理解的最佳代码,但它失败了。这是修改后的代码:

function getFacePageDat(action, callback){
    chrome.extension.sendRequest(
            {
                cmd: action
            },
            function(response)
            {
                callback(response.ageList, response.seekList);
            }
    );
}

getFacePageDat("sendSearchPageInfo", function(reply1, reply2) {
    profileAgeCityMetro=reply1;
    profileSeeks=reply2;
    alert("Reply is:", profileAgeCityMetro+" seeks "+profileSeeks);
    console.log("Reply is:", profileAgeCityMetro+" seeks "+profileSeeks);
});

不幸的是,在'undefined'的事件处理程序错误中失败了:TypeError:对象#的属性'log'不是函数。我知道如果你掌握了回调,这个问题的答案就相当简单但是我没有。有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

上面的

Serg可能是正确的:

console.log(“回复是:”,profileAgeCityMetro +“seek”+ profileSeeks);

应该是

console.log(“回复是:”+ profileAgeCityMetro +“寻求”+ profileSeeks);