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。