【问题标题】:History not fully deleted using chrome.history.deleteRange使用 chrome.history.deleteRange 未完全删除历史记录
【发布时间】:2015-01-23 16:47:11
【问题描述】:

我编写了一个小扩展,它使用来自chrome.history API 的deleteRange,以便删除开始和结束时间戳之间的部分浏览器历史记录。

chrome.history.deleteRange({
   startTime : startTime,
   endTime : endTime
}, function() {
   console.log("Recent history deleted successfully");
});

我使用(new Date()).getTime() 得到startTimeendTime

它“有点工作”。如果我在启动扩展程序后第一次在 Chrome 中打开一个页面,我将能够在多功能框中使用它的 URL,而无需完全输入它(这表明 Chrome 会通过其历史记录记住该 URL)。致电deleteRange 后,我再也无法这样做了。我还在控制台上看到了文本Recent history deleted successfully。对我来说,这表明该页面已从历史中删除。

但它没有。如果我转到 Chrome/设置/历史记录,我仍然可以看到我访问该页面的时间。我希望这会被擦除...如何使用开始和结束时间戳从最近的历史记录中擦除一个页面(我以前从未打开过)?

编辑:我添加了这一行

console.log("Right before calling deleteRange. startTime=" + startTime + " / endTime=" + endTime);

我的代码导致

Right before calling deleteRange. startTime=1416931451880 / endTime=1416931463988

EDIT2:我开了一个Chromium bug。让我们看看我能从那里得到什么

【问题讨论】:

  • 我会假设相关条目的访问时间需要位于startTimeendTime 之间。当您扩大范围并且不为两者使用相同的确切时间时会发生什么(或者我误解了您如何设置它们)?
  • 我使用相同的代码设置startTime和endTime,但是我在两个不同的时间点使用它(浏览器动作图标的两次不同的点击),所以它们是不同的,页面访问是清楚地在 startTime 和 endTime 之间)
  • 你能添加控制台输出显示设置的 3 次吗?
  • 页面访问时间呢?
  • 我应该如何找到这个?我只是在 startTime 和 endTime 之间手动打开了一个页面。我可以在设置/历史记录中看到它(带有当地时间小时/分钟),所以访问已被自动记录

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


【解决方案1】:

查看文档:API

它指出:

除非所有次访问下降,否则页面不会从历史记录中删除 范围内。

所以我的猜测是,您获得建议的那些页面在 startTime 之前就已访问过。所以他们的网址不会被删除,因为并非所有访问都在您指定的范围内。

【讨论】:

  • 不,很遗憾不是这样。如上所述,我是第一次访问该页面。没有其他访问。与此同时,Chromium 开发人员已确认该错误。这取决于启用历史同步。
  • @devnull69 你应该发布一个自我回答,解释这是一个与历史同步有关的已知错误
【解决方案2】:

Chromium 开发人员已确认该错误。这取决于启用历史同步。

Chromium bug report

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多