Chrome.history.getVisits返回空集,即使Chrome.history.search中存在项目

时间:2014-01-20 20:34:25

标签: google-chrome google-chrome-extension browser-history

我想收集我过去的N个历史项目,然后找到我访问该页面的所有时间的时间戳,直到我的Chrome历史记录包含。

Chrome.history.search允许我获取我最近N个历史项目的网址。

但是,如果我现在在每个网址上调用Chrome.history.getVisits,有些会返回“[]”,即使它们存在于我的历史记录中。此外,在chrome:// history中搜索URL会正确返回该项,即使getVisits调用返回[]。

还有一个小问题,这似乎是我历史上的一个问题。我的前50个项目都返回一个正确的[对象],但在那之后,几乎所有(看起来像90%+)都是空集[]。

下图显示了API调用返回[],而历史记录正确显示了结果。 enter image description here

1 个答案:

答案 0 :(得分:0)

通过查看扩展样本here,修复方法如下。你需要一个闭包来将url绑定到回调的args(chrome.history.getVisits()函数的回调)以使其工作。



function loadUrlVisits(url){
   var processVisitsWithUrl = function(url) {
   // We need the url of the visited item to process the visit.
   // Use a closure to bind the  url into the callback's args.
      return function(visitItems) {
            processVisits(url, visitItems);
      };
    };
    chrome.history.getVisits({url: url}, processVisitsWithUrl(url));

}

function processVisits(url, visitItems){
  //process visit items here...
}




可以找到样本的参考扩展名here