downloads.erase()

downloads API 的 erase() 函数从浏览器的下载历史记录中删除匹配的 DownloadItems,而不会从磁盘中删除已下载的文件。

要从磁盘中删除文件,你需要使用 downloads.removeFile()

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

注意: 如果你想从磁盘中删除已下载的文件并且 从历史记录中删除它,你需要在调用 erase() 之前调用 downloads.removeFile()。如果你反过来尝试,在调用 downloads.removeFile() 时会收到错误,因为它根据浏览器不再存在。

语法

js
let erasing = browser.downloads.erase(
  query                    // DownloadQuery
)

参数

query

一个 downloads.DownloadQuery 对象。

返回值

一个 Promise。如果调用成功,承诺将使用一个整数数组来实现,该数组表示已删除的 DownloadItems 的 ID。如果没有找到与查询参数匹配的项,数组将为空。如果调用失败,承诺将被错误消息拒绝。

浏览器兼容性

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

示例

删除最近的下载

js
function onErased(ids) {
  console.log(`Erased: ${ids}`);
}

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

let erasing = browser.downloads.erase({
  limit: 1,
  orderBy: ["-startTime"],
});

erasing.then(onErased, onError);

删除所有内容

js
function onErased(ids) {
  console.log(`Erased: ${ids}`);
}

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

let erasing = browser.downloads.erase({});
erasing.then(onErased, onError);

示例扩展

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