Behebung des Fehlers „Befleckte Leinwände können möglicherweise nicht exportiert werden“
Beim Versuch, eine Leinwand mithilfe von canvas.toDataURL() in einem Bild zu speichern, kann Folgendes auftreten Fehler:
Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
Nach dem Login kopieren
Ursache:
Aus Sicherheitsgründen wird die lokale Festplatte als „andere Domäne“ betrachtet, wodurch die Leinwand verschmutzt wird.
Lösung:
Während des Tests können Sie die folgenden Lösungen ausprobieren:
-
Alle seitenbezogenen Dateien auf dem Desktop platzieren : Platzieren Sie alle HTML-, JPG-, JS-, CSS- usw. Dateien auf dem Desktop, nicht in Unterordnern.
-
Veröffentlichen Sie das Bild auf einer Website, die die domänenübergreifende Freigabe unterstützt: wie DropBox.com oder GitHub. Stellen Sie sicher, dass Sie das Bild in einem öffentlichen Ordner in DropBox ablegen und beim Herunterladen des Bildes das Cross-Origin-Flag (var img=new Image(); img.crossOrigin="anonymous" ...) setzen.
-
Installieren Sie einen Webserver auf Ihrem Entwicklungscomputer: Beispielsweise gibt es für IIS- und PHP-Webserver kostenlose Versionen, die gut auf Ihrem lokalen Computer laufen.
Das obige ist der detaillierte Inhalt vonWarum kann ich meine Leinwand nicht als Bild exportieren? (Tainted Canvases-Fehler). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!