Ich verwende html2canvas in einem Reaktionsprojekt. Ich habe festgestellt, dass html2canvas nicht funktioniert, wenn html ein Canvas-Element enthält. Der Canvas-Bereich wird leer angezeigt.
Dies ist das HTML-Bild
Dies ist die Konvertierung in Leinwandbild
Im Canvas-Bereich verwende ich 'Echarts-for-React', um eine Radarkarte zu zeichnen. Aber wenn ich auf die Schaltfläche Bilder generieren klicke, ist das Download-Bild nicht vollständig
Ich habe das gleiche Problem.
Könnten Sie ein Beispiel für jsfiddle geben?
gleiches Problem. Ich habe Diagramme auf der Seite, sie werden nicht mehr gerendert. wird zum Rendern in der vorherigen Version verwendet
Ich habe eine Geige erstellt, um das Problem zu zeigen
https://jsfiddle.net/outerbound/v7p71wzr/
Dies funktioniert nicht auf Chrome :(, ich kann auf Safari bestätigen, dass es funktioniert :)
Problem ist das Entfernen des Containerformulars DOM vor dem Rendern
Ich habe das gleiche Problem. Marker...
Möglicherweise kann html2canvas nicht mit gridstack.js arbeiten
Hatte das gleiche Problem mit der Verwendung von chart.js mit vue (vue-chart.js) und es passiert nur in Chrome
Ich habe das gleiche Problem, html2canvas kann nicht mit gridstack.js arbeiten. Wenn ich html2canvans mit gridstack verwende, werden alle Elemente oben gestapelt.
@ Nemo0915 Ich baue eine jsfiddle mit gridstack.js, aber es funktioniert gut. Vielleicht ist das nicht das Problem von gridstack.js, aber ich bin mir nicht sehr sicher.
Das gleiche Problem, Firefox ist in Ordnung, aber Chorme kann nicht funktionieren
@bigfacewo danke für deine Antwort, es ist der Screenshot deiner jsfiddle, die Schaltfläche wurde ebenfalls nach oben gestapelt und das Ergebnis ist das gleiche, ob in FF oder Chrome.
@ Nemo0915 Ich fand die 0.5.0-Beta4-Version normal, jsfiddle . Der Screenshot ist:
Die 1.0.0-alpha4-Version, jsfiddle , kann nicht auf Chrome funktionieren, aber ich habe das Problem nicht gefunden, dass die Elemente oben gestapelt wurden. Dies ist der Screenshot von Firefox:
Chrome-Version: 63.0.3239.108
Firefox-Version: 57.0.2
Sie können die Option hinzufügen: removeContainer: false, um dieses Problem vorübergehend zu beheben ....
Danke @IxAres , es löst mein Problem.
Ich habe versucht, removeContainer: false hinzuzufügen, aber das Problem besteht immer noch auf Mobile Chrome
@ Niklasvh es funktioniert überhaupt nicht. Ich verwende Version 1.0.0-rc.5 dieser Anwendung.
Hey, welche Lösung?
2020 ist das Problem immer noch da.
+1 Ich sehe auch dieses Verhalten.
Problem besteht immer noch
Das Problem mit dem Browser Chart.js und Firefox 76.0 (64-Bit) besteht weiterhin
Hey, da bekomme ich das gleiche Problem mit Mapbox im Element. Kannst du bitte hier helfen?
Ich habe auch removeContainer versucht: false, aber es hat bei mir nicht funktioniert.
@ Rajeshgtstpl Ich hatte ein ähnliches Problem mit Mapbox. Ich habe es gelöst, indem ich preserveDrawingBuffer: true
in den Mapbox-Optionen gesetzt habe.
Ich verwende Chart.js nicht, hatte aber das gleiche Problem mit Leinwänden, auf denen ich drawImage verwendet habe. Das Problem wurde behoben, indem image.crossOrigin = 'anonym' in das Bildelement eingefügt wurde, bevor es an drawImage übergeben wurde.
image.crossOrigin = 'anonymous'
Hoffe es kann jemandem helfen :)
Hallo Leute, ich habe ein ähnliches Canvas-Exportproblem, aber mit einer ThreeJS-Szene irgendwelche Empfehlungen? Ich habe es mit der Version 1.0.0-rc.7 versucht, aber sie exportiert alles außer der Canvas von ThreeJS.
EDIT: Ich habe versucht, die drei js Leinwand wie folgt hinzuzufügen:
Habe aber diesen Fehler bekommen:
@AchoArnold preserveDrawingBuffer: true
hat für mich für Mapbox gearbeitet, danke.
Frage: Haben Sie einen Leistungseinbruch bemerkt?
Ich verwende Chart.js nicht, hatte aber das gleiche Problem mit Leinwänden, auf denen ich drawImage verwendet habe. Das Problem wurde behoben, indem image.crossOrigin = 'anonym' in das Bildelement eingefügt wurde, bevor es an drawImage übergeben wurde.
image.crossOrigin = 'anonymous'
Hoffe es kann jemandem helfen :)
es hat mir das Leben gerettet, danke
Hilfreichster Kommentar
Ich habe versucht, removeContainer: false hinzuzufügen, aber das Problem besteht immer noch auf Mobile Chrome