【问题标题】:Chrome.history.getVisits returning empty set, even though item exists in Chrome.history.searchChrome.history.getVisits 返回空集,即使项目存在于 Chrome.history.search
【发布时间】:2014-02-10 04:34:40
【问题描述】:

我想收集我过去的 N 个历史记录项,然后找到我访问该页面的所有时间的时间戳,这些时间可以追溯到我的 chrome 历史记录所包含的时间。

Chrome.history.search 允许我获取我最后 N 个历史项目的 url。

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

还有一个花絮,这似乎是一个问题,在我的历史中越往前走。我的前 50 个左右的项目都返回了一个正确的 [Object],但在那之后,几乎所有(看起来 90%+)都是空集 []。

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

【问题讨论】:

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


    【解决方案1】:

    通过查看扩展示例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找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 2019-04-20
      相关资源
      最近更新 更多