history.search()

搜索浏览器的历史记录,查找与给定条件匹配的 history.HistoryItem 对象。

这是一个异步函数,它返回一个 Promise

语法

js
let searching = browser.history.search(
  query                  // object
)

参数

query

一个对象,指示在浏览器历史记录中查找什么。此对象具有以下字段

text

string。按 URL 和标题搜索历史记录项。字符串在空格边界处拆分为单独的搜索词。每个搜索词都与历史记录项的 URL 和标题进行不区分大小写的匹配。如果所有搜索词都匹配,则会返回历史记录项。

例如,考虑以下项目

URL:"http://example.org"

标题:"Example Domain"

"http"              -> matches
"domain"            -> matches
"MAIN ample"        -> matches
"main tt"           -> matches
"main https"        -> does not match

指定空字符串 ("") 以检索满足所有其他条件的所有 history.HistoryItem 对象。

startTime 可选

numberstringobject。表示日期和时间的数值。这可以表示为:Date 对象、ISO 8601 日期字符串 或自纪元以来的毫秒数。如果提供,此选项将排除其 lastVisitTime 早于此时间的搜索结果。如果省略,则搜索将限于过去 24 小时。

endTime 可选

numberstringobject。表示日期和时间的数值。这可以表示为:Date 对象、ISO 8601 日期字符串 或自纪元以来的毫秒数。如果提供,此选项将搜索结果限制为在此日期之前访问的结果。如果省略,则会考虑从开始时间起的所有条目。

maxResults 可选

number。要检索的最大结果数。默认为 100,最小值为 1。如果您传递给它小于 1 的 maxResults 值,则该函数将抛出错误。

返回值

一个 Promise 将以一个 history.HistoryItem 类型的对象数组的形式完成,每个对象描述一个匹配的历史记录项。项目按时间倒序排序。

示例

记录过去 24 小时内访问的所有历史记录项的 URL 和上次访问时间

js
function onGot(historyItems) {
  for (const item of historyItems) {
    console.log(item.url);
    console.log(new Date(item.lastVisitTime));
  }
}

browser.history.search({ text: "" }).then(onGot);

记录曾经访问过的所有历史记录项的 URL 和上次访问时间

js
function onGot(historyItems) {
  for (const item of historyItems) {
    console.log(item.url);
    console.log(new Date(item.lastVisitTime));
  }
}

browser.history
  .search({
    text: "",
    startTime: 0,
  })
  .then(onGot);

记录包含字符串“mozilla”的页面的最近一次访问的 URL 和上次访问时间

js
function onGot(historyItems) {
  for (const item of historyItems) {
    console.log(item.url);
    console.log(new Date(item.lastVisitTime));
  }
}

browser.history
  .search({
    text: "mozilla",
    startTime: 0,
    maxResults: 1,
  })
  .then(onGot);

扩展示例

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

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