2014-02-18 20 views
9

Unter Code wird Canvas zu Bild konvertieren und das gleiche wird in anderen Browsern als IE heruntergeladen (ich benutze IE9) .IE Code öffnet die DataURL in neue Registerkarte.Aber es kann nicht heruntergeladen werden .Download Leinwand zu Bild in IE mit Javascript

 if(navigator.appName == "Microsoft Internet Explorer") 
       { 
        somehtml1= document.createElement("img"); 
        somehtml1.id="imgid";somehtml1.name="imgname"; 
        somehtml1.src=canvas.toDataURL("image/png"); 
        document.body.appendChild(somehtml1); 

        window.win = open (somehtml1.src); 
        setTimeout('win.document.execCommand("SaveAs")', 500); 
        }   
       else 
         { 
          somehtml= document.createElement("a"); 
somehtml.href = canvas.toDataURL("image/png"); 
somehtml.download = "test.png"; 

} 

Antwort

5

schnell und einfach für Benutzer: einfach einen neuen Tab öffnen, die canvas.toDataURL anzuzeigen.

Benutzer wissen heute, wie Sie mit der rechten Maustaste klicken und speichern können.

Wenn Sie versuchen, die Schaltfläche "Speichern unter" für sie zu drücken, wird in Ihrer Software ein weiterer potenzieller Fehlerpunkt erstellt. [Das sind meine 2-Cent].

Beispielcode:

$("#save").click(function(){ 
     var html="<p>Right-click on image below and Save-Picture-As</p>"; 
     html+="<img src='"+canvas.toDataURL()+"' alt='from canvas'/>"; 
     var tab=window.open(); 
     tab.document.write(html); 
    }); 

[weitere Lösung]

Sie können die FileSaver.js Bibliothek verwenden die Benutzer speichern die Leinwand, um ihre lokalen Laufwerk zu lassen.

https://github.com/eligrey/FileSaver.js

+0

Dank ..das wirklich nützlich war. –

+0

Hallo, die Anforderung ist, das Speichern als Bild automatisch zu drücken, sobald der neue Tab geöffnet wird. –

+1

Verstanden ... IMHO, es ist eine schlechte Voraussetzung. – markE

25

Hier ist, was ich verwende - nicht sicher, welche Version von IE dies erfordert, wie ich 11 bin mit Es verwendet einen Klecks für IE und Leinwand als DataURL für andere Browser. Getestet in Chrome und IE 11.

(Leinwand ist die Leinwand Objekt, Link ist ein Hyperlink-Objekt)

  if (canvas.msToBlob) { //for IE 
       var blob = canvas.msToBlob(); 
       window.navigator.msSaveBlob(blob, 'dicomimage.png'); 
      } else { 
       //other browsers 
       link.href = canvas.toDataURL(); 
       link.download = "dicomimage.png"; 
      } 
+0

Großartig, es ist Arbeit in IE11 :) Danke! –

+0

Irgendwelche Ideen, warum die Bildqualität im IE nicht so gut ist wie bei Chrome? –

Verwandte Themen