Google chrome extension 为什么此函数将响应返回为null

Google chrome extension 为什么此函数将响应返回为null,google-chrome-extension,Google Chrome Extension,我在事件单击上编写了一个函数,如下所示 $('#ClickMe').live('click', function () { chrome.extension.sendRequest({ method: "getT" }, function (response) { alert(response.data); // Displaying undefined.. }); }); 在背景页 function wish(){ return "Hey..

我在事件单击上编写了一个函数,如下所示

$('#ClickMe').live('click', function () {
    chrome.extension.sendRequest({ method: "getT" }, function (response) {
        alert(response.data); // Displaying undefined..
    });
});
在背景页

function wish(){      
   return "Hey...";
}
chrome.extension.onRequest.addListener(function(request, sender, sendResponse){
  if (request.method == "getT"){
    sendResponse({data: wish()});
  }
  else
    sendResponse({});
});

我无法在内容脚本中获得响应。请在这方面帮助我

您不能在JSON对象中发送这样的函数参数,您需要先实例化它,然后将其作为变量而不是函数传递,因为它会将其视为闭包,因此当它进行序列化时,它不会包含这些参数

function wish(){      
   return "Hey...";
}
chrome.extension.onRequest.addListener(function(request, sender, sendResponse){
  if (request.method == "getT"){
    var data = wish();
    sendResponse({data: data});
  }
  else
    sendResponse({});
});

上述代码段应该可以工作。

您是否尝试将
console.log()
语句添加到后台页面,以查看调用的确切内容和时间,以及
request.method
的值?代码在我看来很好,我想不出为什么它不工作。我无法重现这个错误。您如何精确地运行
$(“#单击我”…)?@Rob W我不明白你的意思。“你能告诉我你还需要什么投入吗……”阿拉斯代尔我也很困惑。它以前工作过,现在运行时返回未定义的状态..:-(SOI)你把代码放在你的内容脚本中了吗?没有别的东西了吗?<代码>清单的内容是什么?JSON < /Code >。如果你的内容脚本太大,请考虑粘贴代码,以便于你的反应,并感谢你的答案。