downloads.search()

该 **search()** 函数是 downloads API 的一部分,用于查询浏览器下载管理器中可用的 DownloadItems,并返回与指定搜索条件匹配的项。

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

语法

js
let searching = browser.downloads.search(query);

参数

query

一个 downloads.DownloadQuery 对象。

返回值

一个 Promise。该 promise 将通过一个包含与给定条件匹配的 downloads.DownloadItem 对象的 数组 来完成。

浏览器兼容性

BCD 表格仅在浏览器中加载

示例

通常,您可以使用 query 参数限制检索到的项。

获取与“查询”匹配的下载

js
function logDownloads(downloads) {
  for (const download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

browser.downloads
  .search({
    query: ["imgur"],
  })
  .then(logDownloads, onError);

获取特定项

要获取特定 DownloadItem,最简单的方法是仅设置 id 字段,如以下代码片段所示

js
function logDownloads(downloads) {
  for (const download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

const id = 13;

browser.downloads.search({ id }).then(logDownloads, onError);

获取所有下载

如果要返回所有 DownloadItems,请将 query 设置为空对象。

js
function logDownloads(downloads) {
  for (const download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

browser.downloads.search({}).then(logDownloads, onError);

获取最新的下载

可以通过指定以下搜索参数来获取最新的下载

js
function logDownloads(downloads) {
  for (const download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

function onError(error) {
  console.log(`Error: ${error}`);
}

browser.downloads
  .search({
    limit: 1,
    orderBy: ["-startTime"],
  })
  .then(logDownloads, onError);

您可以在我们的 latest-download 示例中看到此代码的实际运行效果。

示例扩展

注意: 此 API 基于 Chromium 的 chrome.downloads API。