downloads.download()
Die download() Funktion der downloads API lädt eine Datei herunter, basierend auf ihrer URL und anderen optionalen Einstellungen.
Wenn die URL das HTTP- oder HTTPS-Protokoll verwendet, enthält die Anfrage alle relevanten Cookies, das heißt, jene Cookies, die für den Hostnamen, das Sicherheitsflag, den Pfad usw. der URL gesetzt sind. Die Standard-Cookies der normalen Browsing-Sitzung werden verwendet, sofern nicht:
- die Option
incognitoverwendet wird, dann werden die privaten Browsing-Cookies verwendet. - die Option
cookieStoreIdverwendet wird, dann werden die Cookies aus dem angegebenen Store verwendet.
Wenn sowohl filename als auch saveAs angegeben sind, wird der Dialog "Speichern unter" angezeigt, der mit dem filename ausgefüllt ist.
Dies ist eine asynchrone Funktion, die ein Promise zurückgibt.
Syntax
let downloading = browser.downloads.download(
options // object
)
Parameter
options-
Ein
object, das angibt, welche Datei Sie herunterladen möchten, und alle anderen Einstellungen, die Sie bezüglich des Downloads festlegen möchten. Es kann die folgenden Eigenschaften enthalten:allowHttpErrorsOptional-
Ein
booleanFlag, das es erlaubt, Downloads auch bei Auftreten von HTTP-Fehlern fortzusetzen. Mit diesem Flag können beispielsweise Server-Fehlerseiten heruntergeladen werden. Standardwert istfalse. Wenn gesetzt auf:false, wird der Download bei Auftreten eines HTTP-Fehlers abgebrochen.true, wird der Download bei Auftreten eines HTTP-Fehlers fortgesetzt und der HTTP-Server-Fehler wird nicht gemeldet. Sollte der Download jedoch wegen dateibezogener, netzwerkbezogener, benutzerbezogener oder anderer Fehler fehlschlagen, wird dieser Fehler gemeldet.
bodyOptional-
Ein
string, der den Post-Body der Anfrage darstellt. conflictActionOptional-
Ein String, der die Aktion darstellt, die im Falle eines Dateinamenskonflikts durchgeführt werden soll, wie im
downloads.FilenameConflictActionTyp definiert (standardmäßig "uniquify", wenn nicht angegeben). -
Die Cookie-Store-ID der contextual identity, mit der der Download verknüpft ist. Wenn nicht angegeben, wird der Standard-Cookie-Store verwendet. Die Verwendung erfordert die "cookies" API-Berechtigung. Weitere Informationen finden Sie unter Arbeiten mit kontextuellen Identitäten.
filenameOptional-
Ein
string, der einen Dateipfad relativ zum Standard-Downloads-Verzeichnis darstellt — das gibt den Ort an, an dem Sie die Datei speichern möchten, und den Dateinamen, den Sie verwenden möchten. Absolute Pfade, leere Pfade, Pfadkomponenten, die mit einem Punkt (.) beginnen und/oder enden, sowie Pfade, die Rückverweise (../) enthalten, verursachen einen Fehler. Wenn Sie diesen Wert weglassen, wird standardmäßig der bereits dem Download zugewiesene Dateiname und ein Ort unmittelbar im Downloads-Verzeichnis verwendet. headersOptional-
Wenn die URL das HTTP- oder HTTPS-Protokoll verwendet, ein
arrayvonobjects, das zusätzliche HTTP-Header darstellt, die mit der Anfrage gesendet werden sollen. Jeder Header wird als ein Wörterbuchobjekt dargestellt, das die Schlüsselnameund entwedervalueoderbinaryValueenthält. Die Header, die vonXMLHttpRequestundfetchverboten sind, können nicht angegeben werden, jedoch erlaubt Firefox seit Version 70 die Verwendung desReferer-Headers. Der Versuch, einen verbotenen Header zu verwenden, führt zu einem Fehler. incognitoOptional-
Ein
boolean: falls vorhanden und auf true gesetzt, wird dieser Download mit einer privaten Browsing-Sitzung verknüpft. Dies bedeutet, dass er nur im Download-Manager für alle derzeit geöffneten privaten Fenster erscheint. methodOptional-
Ein
string, der die HTTP-Methode darstellt, die verwendet werden soll, wenn dieurldas HTTP[S]-Protokoll verwendet. Dies kann entweder "GET" oder "POST" sein. saveAsOptional-
Ein
boolean, der angibt, ob ein Dateiauswahldialog zur Auswahl eines Dateinamens angezeigt werden soll (true) oder nicht (false).Wenn diese Option weggelassen wird, zeigt der Browser den Dateiauswahldialog je nach allgemeiner Benutzereinstellung für dieses Verhalten an oder nicht (in Firefox wird diese Einstellung als "Sie immer fragen, wo Dateien gespeichert werden sollen" in about:preferences oder
browser.download.useDownloadDirin about:config bezeichnet).Hinweis: Firefox für Android gibt einen Fehler aus, wenn
saveAsauftruegesetzt ist. Der Parameter wird ignoriert, wennsaveAsauffalsegesetzt oder nicht angegeben ist. url-
Ein
string, der die URL zum Herunterladen darstellt.
Rückgabewert
Ein Promise. Wenn der Download erfolgreich gestartet wurde, wird das Promise mit der id des neuen downloads.DownloadItem erfüllt. Andernfalls wird das Promise mit einer Fehlermeldung aus downloads.InterruptReason abgelehnt.
Wenn Sie URL.createObjectURL() verwenden, um in JavaScript erstellte Daten herunterzuladen, und Sie später die Objekt-URL (mit revokeObjectURL) widerrufen möchten (was dringend empfohlen wird), müssen Sie das tun, nachdem der Download abgeschlossen ist. Um dies zu tun, hören Sie auf das downloads.onChanged Ereignis.
Beispiele
Der folgende Schnipsel versucht, eine Beispieldatei herunterzuladen, wobei auch ein Dateiname und Speicherort angegeben werden sowie uniquify als Wert der Option conflictAction.
function onStartedDownload(id) {
console.log(`Started downloading: ${id}`);
}
function onFailed(error) {
console.log(`Download failed: ${error}`);
}
let downloadUrl = "https://example.org/image.png";
let downloading = browser.downloads.download({
url: downloadUrl,
filename: "my-image-again.png",
conflictAction: "uniquify",
});
downloading.then(onStartedDownload, onFailed);
Browser-Kompatibilität
Loading…
Hinweis:
Diese API basiert auf der chrome.downloads API von Chromium.