Ich verwende das praktische data-html2canvas-ignore
-Tag für einige Elemente, aber Firefox gibt mir Probleme mit Elementen mit negativen Rändern. Ich möchte in der Lage sein, ein Nur-HTML2canvas-Stil-Tag für ein bestimmtes Element hinzuzufügen, z. B.: data-html2canvas-style="margin-left: 0"
.
Hat jemand anderes Glück gehabt, so etwas zu tun?
Sie können den Inhalt des Dokuments (das ein Klon des Originals ist) ändern, das mit der Option onclone
gerendert wird. Beispiel:
html2canvas(document.body, {onclone: function(document) {
document.querySelector('.something').style.marginLeft = 0;
}}).then(...)
Danke Nik! Schätzen Sie Ihre Arbeit an dieser Bibliothek sehr. Ist das in der Dokumentation?
Nein, leider nicht. Die Dokumentation fehlt im Moment in vielerlei Hinsicht ...
Mein heruntergeladenes Bild erhält nicht das richtige Styling, daher verwende ich Computed-Style-to-Inline-Style , um es richtig zu rendern, indem ich das gesamte Styling in Inline-CSS konvertiere. Aber das Problem dabei ist, dass es den ursprünglichen Dom betrifft. Ich möchte es also für das geklonte Element tun, stattdessen innerhalb der Onclone-Funktion, aber es funktioniert nicht und das Bild ist nicht richtig gestaltet. Irgendeine Idee, warum es passiert?
Ich habe versucht, dasselbe zu tun. Hier ist, wie ich es implementiert habe und alle meine Stile wurden ordnungsgemäß heruntergeladen:
const computedStyleToInlineStyle = require("computed-style-to-inline-style");
html2canvas(document.querySelector(".someclass"), {onclone: function(document) {
computedStyleToInlineStyle(document.querySelector(".someclass"), {
recursive: true
});
}}).then(canvas => {
const imgData = canvas.toDataURL('image/png');
...
});
Hilfreichster Kommentar
Sie können den Inhalt des Dokuments (das ein Klon des Originals ist) ändern, das mit der Option
onclone
gerendert wird. Beispiel: