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

时间:2012-02-24 13:03:29

标签: google-chrome-extension

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

$('#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({});
});

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

1 个答案:

答案 0 :(得分:1)

你不能在JSON对象中发送你需要首先实例化它的函数参数,然后将它作为变量传递而不是作为函数传递,因为它会将它作为Closure处理,所以当它进行序列化时,它不包括那个。

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

以上代码段应该有效。