2016-10-02 4 views
0

Ich verwende eine Funktion http://js.cytoscape.org/#cy.jpg, um das Diagramm im JPG-Format zu erhalten.Datei herunterladen statt in JavaScript öffnen

Ich benutze es mit window.location.assign(cy.jpg());, aber es öffnet das Bild auf der gleichen Registerkarte öffnet.

Ich möchte es herunterladen, anstatt in der Registerkarte zu öffnen. Ich denke, ich muss content-disposition = attachment oder etwas ähnliches einstellen.

bearbeiten

Ich löste es mit

const link = document.createElement('a'); 
link.download = 'filename.png'; 
link.href = cy.png(); 
link.click(); 

es jedoch in allen Browsern kompatibel ist.

+0

Es scheint, diese Funktion können Sie die Base64-Darstellung gibt. Eine Möglichkeit, es hochzuladen, könnte sein, den Wert mit enctype = "multipart/form-data" zu POST zu setzen. – Tom

Antwort

0

Sie <a> Element festlegen href Attribut cy.png() zu führen, setzen download Attribut bei <a> Element, rufen click() auf <a> Element.

Alternativ können Sie MIME Typ "image/png" Teil data URI durch cy.png() mit "application/octet-stream" zurück ersetzen, stellen Sie dann location.href auf Ersatz data URI

var url = cy.png(); 
    url = url.replace("image/png", "application/octet-stream"); 
    window.location.href = url; 

Siehe auch How to download a file without using <a> element with download attribute or a server?

Verwandte Themen