downloads.onChanged
downloads API 的 onChanged() 事件会在 downloads.DownloadItem 的任一属性发生更改时触发(bytesReceived 除外)。
监听器会收到一个 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 语法
参数
监听器-
发生此事件时调用的函数。此函数将接收以下参数:
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状态的更改。
示例
下载完成时记录一条消息
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。