2016-06-01 31 views
1

Ich arbeite derzeit mit html2canvas und FileSaver, um die generierte Leinwand zu speichern, wenn auf die Schaltfläche geklickt wird. Ein Dialogfeld wird eingeblendet, und der Benutzer kann auswählen, wo das Bild gespeichert und umbenannt werden soll, wenn er dies wünscht. Es funktioniert perfekt ... in Firefox. Ich kann es nicht in Chrome, IE oder Safari zum Laufen bringen.html2canvas + FileSaver Browser Probleme

Die html2canvas wird ihren Teil tun, und erstellen Sie das Bild aus dem Div in all diesen Browsern. Das FileSaver-Dialogfeld wird in den oben genannten Browsern nicht funktionieren.

Irgendwelche Ideen? Ich habe mein Skript angehängt. https://jsfiddle.net/ticklishoctopus/556etja4/

Script (mit etwas Hilfe von vorherigen SO Beiträgen):

$(function() { 
    $("#btnSave").click(function() { 
     html2canvas($("#testbtn"), { 
      onrendered: function (canvas) { 
       theCanvas = canvas; 
       document.body.appendChild(canvas); 

       canvas.toBlob(function (blob) { 
        saveAs(blob, "testimage.jpg"); 
       }); 
      } 
     }); 
    }); 
}); 

Antwort

0

Realisierte toBlob wird nicht unterstützt in Chrome können Sie meinen vollen Arbeits Code hier sehen. Verwenden Sie stattdessen: Possible Solution

+0

Ich werde dies geben! Muss ich etwas in meinem Skript ändern? Oder importieren Sie einfach diese Bibliothek? – ticklishoctopus

+0

lesen Sie die Beschreibung. Möglicherweise müssen Sie Ihre Standardfunktionen mit den erforderlichen Funktionen aus der Bibliothek ändern. – ZombieChowder

+0

Wir müssen verschiedene Dinge lesen, ich sehe das: "canvas-toBlob.js implementiert die standard HTML5 canvas.toBlob() - und canvas.toBlobHD() -Methoden in Browsern, die es nicht nativ unterstützen. Canvas-toBlob.js benötigt die Blob-Unterstützung, die nicht in allen Browsern vorhanden ist. Blob.js ist eine browserübergreifende Blob-Implementierung, die das Problem löst. " Welches hat keine echte Antwort. – ticklishoctopus