在传递历史搜索的消息中发送响应

时间:2013-03-24 18:16:57

标签: google-chrome-extension

我一直在尝试在后台页面中发送搜索记录,并将响应发送回首页。我正在使用消息解析。 搜索历史记录后,我无法发送回复。

-------- ------------- background.js

var SECONDS_PER_WEEK = 1000 * 60 * 60 * 24 * 7;

chrome.extension.onMessage.addListener(
 function(request, sender, sendResponse) {
    if(request === "getHistory"){
        var value = getHistory();
        console.log("Response" , value);
        sendResponse(value);    
} 
}

);

function getHistory(){
var current_time = new Date().getTime();
var timeToFetch = current_time - SECONDS_PER_WEEK;
return chrome.history.search({
        'text' : '',
        'startTime' : timeToFetch
    },
    function(resp){
        return resp;
});

}

问题在于它本身就像在记录中我得到'未定义'作为响应。 任何人都可以指导我解决方案

1 个答案:

答案 0 :(得分:0)

大多数Chrome.* API函数都是异步的,所以尝试这样做:

<强> background.js

var SECONDS_PER_WEEK = 1000 * 60 * 60 * 24 * 7;

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
  if(request === "getHistory"){
    getHistory(sendResponse);
    return true;
  } 
});

function getHistory(sendResponse){
  var current_time = new Date().getTime();
  var timeToFetch = current_time - SECONDS_PER_WEEK;
  chrome.history.search({
    'text' : '',
    'startTime' : timeToFetch
  },
  function(resp){
    console.log("Response: " + resp);
    sendResponse(resp);
  });
}