downloads.onChanged

downloads API 的downloads.DownloadItem对象的任何属性发生更改(除了bytesReceived)时,就会触发onChanged()事件。

侦听器将传递一个downloadDelta作为参数 - 一个包含正在讨论的downloads.DownloadItem对象的downloadId,以及所有已更改属性的状态的对象。

语法

js
browser.downloads.onChanged.addListener(listener)
browser.downloads.onChanged.removeListener(listener)
browser.downloads.onChanged.hasListener(listener)

事件有三个函数

addListener(listener)

向此事件添加侦听器。

removeListener(listener)

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

hasListener(listener)

检查是否为给定的listener注册了此事件。如果正在侦听,则返回true,否则返回false

addListener 语法

参数

listener

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

downloadDelta

一个object,表示已更改的downloads.DownloadItem对象,以及其中所有已更改属性的状态。有关更多详细信息,请参阅downloadDelta部分。

其他对象

downloadDelta

downloadDelta对象具有以下可用属性

id

一个integer,表示已更改的downloads.DownloadItemid

url 可选

一个downloads.StringDelta对象,描述downloads.DownloadItemurl的更改。

filename 可选

一个downloads.StringDelta对象,描述downloads.DownloadItemfilename的更改。

danger 可选

一个downloads.StringDelta对象,描述downloads.DownloadItemdanger的更改。

mime 可选

一个downloads.StringDelta对象,描述downloads.DownloadItemmime的更改。

startTime 可选

一个downloads.StringDelta对象,描述downloads.DownloadItemstartTime的更改。

endTime 可选

一个downloads.StringDelta对象,描述downloads.DownloadItemendTime的更改。

state 可选

一个downloads.StringDelta对象,描述downloads.DownloadItemstate的更改。

canResume 可选

一个downloads.BooleanDelta对象,描述downloads.DownloadItemcanResume状态的更改。

paused 可选

一个downloads.BooleanDelta对象,描述downloads.DownloadItempaused状态的更改。

error 可选

一个downloads.StringDelta对象,描述downloads.DownloadItemerror状态的更改。

totalBytes 可选

一个downloads.DoubleDelta对象,描述downloads.DownloadItemtotalBytes的更改。

fileSize 可选

一个downloads.DoubleDelta对象,描述downloads.DownloadItemfileSize的更改。

exists 可选

一个downloads.BooleanDelta对象,描述downloads.DownloadItemexists状态的更改。

浏览器兼容性

BCD 表格仅在浏览器中加载

示例

下载完成后记录消息

js
function handleChanged(delta) {
  if (delta.state && delta.state.current === "complete") {
    console.log(`Download ${delta.id} has completed.`);
  }
}

browser.downloads.onChanged.addListener(handleChanged);

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