history.onVisitRemoved

当页面从浏览器历史记录中完全删除时触发。

  • 如果单个页面的所有访问记录都被删除(例如,使用 history.deleteUrl),则该事件将触发一次。
  • 如果删除了一系列访问记录(例如,使用 history.deleteRange 或类似“清除最近历史记录”的浏览器功能),则它会针对每个页面触发一次,其访问记录全部落在清除的范围内
  • 如果浏览器的所有历史记录都被清除(例如,使用 history.deleteAll),则它只触发一次。

语法

js
browser.history.onVisitRemoved.addListener(listener)
browser.history.onVisitRemoved.removeListener(listener)
browser.history.onVisitRemoved.hasListener(listener)

事件具有三个函数

addListener(listener)

向此事件添加侦听器。

removeListener(listener)

停止侦听此事件。listener 参数是要删除的侦听器。

hasListener(listener)

检查listener 是否为该事件注册。如果正在侦听,则返回 true,否则返回 false

addListener 语法

参数

listener

发生此事件时调用的函数。该函数将传递此参数

removed

object。删除的详细信息。这是一个包含两个属性的对象:布尔值 allHistory 和数组 urls

  • 如果该事件因为所有历史记录被清除而触发,则 allHistory 将为 true,而 urls 将是一个空数组。
  • 否则,allHistory 将为 false,而 urls 将包含一个项目,即已删除页面的 URL。

浏览器兼容性

BCD 表仅在浏览器中加载

示例

js
function onRemoved(removed) {
  if (removed.allHistory) {
    console.log("All history removed");
  } else if (removed.urls.length) {
    console.log(`URL removed: ${removed.urls[0]}`);
  }
}

browser.history.onVisitRemoved.addListener(onRemoved);

注意: 此 API 基于 Chromium 的 chrome.history API。此文档源自 Chromium 代码中的 history.json