Um Screenshots mit JavaScript zu erstellen, möchte ich hier zwei Open-Source-Komponenten empfehlen: Eine davon ist Canvas2Image, die Canvas-Zeichnungen in PNG/JPEG/BMP-Bilder programmieren kann, aber das allein reicht nicht aus. Wir müssen Folgendes geben: Um einen Screenshot eines beliebigen DOM (zumindest des größten Teils davon) zu erstellen, benötigen Sie html2canvas, das das DOM-Objekt in ein Canvas-Objekt konvertieren kann. Durch die Kombination der beiden Funktionen können Sie einen Screenshot des DOM auf der Seite in ein PNG- oder JPEG-Bild erstellen, was sehr cool ist.
Canvas2Image
Das Prinzip besteht darin, das HTML5-Canvas-Objekt zu verwenden, um die toDataURL()-API bereitzustellen:
Allerdings gibt es derzeit viele Mängel. Beispielsweise unterstützen Opera und Safari derzeit nur PNG, während FireFox eine viel bessere Unterstützung bietet.
Es gibt zwei Möglichkeiten, Bilder zu generieren und in die Seite zu schreiben. Eine besteht darin, ein Bildobjekt zu generieren und es in den DOM-Baum der Seite zu schreiben. Dies ist auch eine unterstützendere Möglichkeit:
html2canvas
Es wirkt auf den DOM-Ladevorgang ein, sammelt die Informationen und zeichnet dann das Canvas-Bild. Mit anderen Worten: Es schneidet den angezeigten DOM-Baum nicht wirklich in ein Canvas-Bild, sondern zeichnet eine Canvas basierend auf dem DOM-Baum neu. Bild. Daher können viele CSS-Stile nicht genau erkannt und im Bild nicht genau wiedergegeben werden.Es gibt viele weitere Einschränkungen, wie zum Beispiel:
●Javascript muss in derselben Domäne vorhanden sein (es gibt Parameter in der API, die für Bilder angegeben werden können). ●Der DOM-Baum innerhalb des Rahmens kann nicht genau gezeichnet werden ●Da es sich bei der Zeichnung um eine Leinwand handelt, müssen Browser wie IE8 Bibliotheken von Drittanbietern wie
FlashCanvas
verwenden.
Diese Seite kann die Wirkung verschiedener Websites testen, die sie zum Erstellen von Screenshots verwenden, und die Wirkung ist ziemlich gut:
Beispiele für die API-Nutzung: