downloads.onChanged
当downloads
API 的downloads.DownloadItem
对象的任何属性发生更改(除了bytesReceived
)时,就会触发onChanged()
事件。
侦听器将传递一个downloadDelta
作为参数 - 一个包含正在讨论的downloads.DownloadItem
对象的downloadId
,以及所有已更改属性的状态的对象。
语法
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.DownloadItem
的id
。 url
可选-
一个
downloads.StringDelta
对象,描述downloads.DownloadItem
的url
的更改。 filename
可选-
一个
downloads.StringDelta
对象,描述downloads.DownloadItem
的filename
的更改。 danger
可选-
一个
downloads.StringDelta
对象,描述downloads.DownloadItem
的danger
的更改。 mime
可选-
一个
downloads.StringDelta
对象,描述downloads.DownloadItem
的mime
的更改。 startTime
可选-
一个
downloads.StringDelta
对象,描述downloads.DownloadItem
的startTime
的更改。 endTime
可选-
一个
downloads.StringDelta
对象,描述downloads.DownloadItem
的endTime
的更改。 state
可选-
一个
downloads.StringDelta
对象,描述downloads.DownloadItem
的state
的更改。 canResume
可选-
一个
downloads.BooleanDelta
对象,描述downloads.DownloadItem
的canResume
状态的更改。 paused
可选-
一个
downloads.BooleanDelta
对象,描述downloads.DownloadItem
的paused
状态的更改。 error
可选-
一个
downloads.StringDelta
对象,描述downloads.DownloadItem
的error
状态的更改。 totalBytes
可选-
一个
downloads.DoubleDelta
对象,描述downloads.DownloadItem
的totalBytes
的更改。 fileSize
可选-
一个
downloads.DoubleDelta
对象,描述downloads.DownloadItem
的fileSize
的更改。 exists
可选-
一个
downloads.BooleanDelta
对象,描述downloads.DownloadItem
的exists
状态的更改。
浏览器兼容性
BCD 表格仅在浏览器中加载
示例
下载完成后记录消息
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。