0

バックグラウンドページで検索履歴を送信し、フロントページに応答を返送しようとしています。メッセージ解析を使用しています。履歴を検索した後、返信できません。

-------- 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;
});

}

問題はここにあります。ロギングの場合、応答として「undefined」が返されます。誰かが私を解決策に導くことができますか

4

1 に答える 1

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);
  });
}
于 2013-03-24T18:26:11.527 に答える