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 语法

参数

监听器

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

已移除

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

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

示例

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