downloads.search()

downloads API 的 search() 函式會查詢瀏覽器下載管理器中可用的 DownloadItems,並返回與指定搜尋條件匹配的項。

這是一個非同步函式,返回一個 Promise

語法

js
let searching = browser.downloads.search(query);

引數

query

一個 downloads.DownloadQuery 物件。

返回值

一個 Promise。該 Promise 將會以一個匹配給定條件的 downloads.DownloadItem 物件陣列的形式完成。

示例

通常,您會使用 query 引數來限制檢索到的項。

獲取匹配“query”的下載項

js
function logDownloads(downloads) {
  for (const download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

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

browser.downloads
  .search({
    query: ["imgur"],
  })
  .then(logDownloads, onError);

獲取特定項

要獲取特定的 DownloadItem,最簡單的方法是隻設定 id 欄位,如下面的程式碼片段所示。

js
function logDownloads(downloads) {
  for (const download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

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

const id = 13;

browser.downloads.search({ id }).then(logDownloads, onError);

獲取所有下載項

如果您想返回所有 DownloadItems,請將 query 設定為空物件。

js
function logDownloads(downloads) {
  for (const download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

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

browser.downloads.search({}).then(logDownloads, onError);

獲取最新的下載項

您可以透過指定以下搜尋引數來獲取最新的下載項:

js
function logDownloads(downloads) {
  for (const download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

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

browser.downloads
  .search({
    limit: 1,
    orderBy: ["-startTime"],
  })
  .then(logDownloads, onError);

您可以在我們的 latest-download 示例中看到此程式碼的實際應用。

擴充套件程式示例

瀏覽器相容性

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