Überblick Canvas verfügt über eine sehr häufig verwendete Methode canvas.toDataURL(), die Canvas in das Format einer Daten-URL konvertiert. <Leinwand-ID="Leinwand" Höhe="2" Breite="2"></Leinwand> var Leinwand = document.getElementById('Leinwand'); var dataURL = canvas.toDataURL(); konsole.log(Daten-URL); /* * Daten: Bild/png; Base64, iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAADklEQVQYV2NkgAJGGAMAAC0AA03DhRMAAAAASUVORK5CYII = */ Was genau ist also diese Daten-URL, die mit data:[MIME-Typ];base64 beginnt? Erste Schritte mit Daten-URLs
Daten-URL(s)Was ist der Unterschied zwischen einer Daten-URL und einer herkömmlichen URL? Moderne Browser behandeln Daten-URLs als eindeutige, undurchsichtige Ursprünge und nicht als URLs, die für die Navigation verantwortlich sind.
Aus den obigen Ergebnissen können wir Folgendes ersehen: Daten-URLs unterscheiden sich von herkömmlichen URLs. Eine herkömmliche URL kann in die Adressleiste des Browsers eingegeben werden, um direkt zur Zieladresse zu navigieren; eine Daten-URL hingegen ist eine Daten-URL-Darstellung, die so verstanden werden kann, dass eine URL zur Darstellung von Daten verwendet wird. In der Regel handelt es sich bei den hier angegebenen Daten um Bilder. Wie sieht die Daten-URL aus, nachdem sie in die Adressleiste des Browsers eingegeben wurde? Normalerweise können Sie das durch diese URL dargestellte Bild sehen. <!DOCTYPE html> <html lang="de"> <Text> <Leinwand-ID="Leinwand"></Leinwand> </body> <Skript> var Leinwand = document.getElementById("Leinwand"); var ctx = canvas.getContext("2d"); ctx.font = "48px Serifen"; ctx.fillText("Hallo Canvassssssssss", 0, 75 + 24); var dataURL = canvas.toDataURL(); konsole.log(Daten-URL); </Skript> </html> Syntax der Daten-URLAus welchen vier Teilen besteht eine Daten-URL?
[<Medientyp>] Details
[;base64] und <data> Details
Allgemeine Daten-URL-Formate
Einfacher Text/einfache Daten Hallo Welt!
Beachten Sie die Prozentkodierung (URL-Kodierung) von Anführungszeichen und Leerzeichen. Base64-Format für einfache Text-/Palin-Daten Hallo Welt!
HTML-Ausschnitt: normale Tags <h1>Hallo Welt!</h1>
HTML-Fragment: Skript-Tag, das js ausführt <script>alarm('hallo');</script>
Führen Sie das JS-Skript-Tag aus. Beachten Sie, dass das schließende Skript-Tag erforderlich ist. Base64-Kodierung und -Dekodierung von Zeichenfolgen in mehreren Sprachen
Da die Base64-Zeichenfolge nur aus ASCII-Zeichen besteht, ist sie URL-sicher, sodass Base64 auf die <data> der Daten-URL angewendet wird. Implementieren Sie die Base64-Kodierung in Unix, JavaScript, Node, Python, PHP, Java, .net
1. UnixDekodieren: echo "Zm9vQGdtYWlsLmNvbQ==" | base64 -D Kodierung: echo "[email protected]" | base64 2.Javascriptvar encodedData = window.btoa("[email protected]"); // Kodierung var decodedData = window.atob("Zm9vQGdtYWlsLmNvbQ=="); // Dekodierung console.log(encodedData,decodedData) 3.nodejs//Base64-Kodierung var b = neuer Puffer("[email protected]"); var s = b.toString('base64') console.log("E-Mail-Code:"+s) //Base64-Dekodierung var b = neuer Puffer("Zm9vQGdtYWlsLmNvbQ==","base64") var s = b.toString(); console.log("Mailbox-Dekodierung:"+s) 4. PythonBase64 importieren base64.b64encode("[email protected]") base64.b64decode("Zm9vQGdtYWlsLmNvbQ==") 5.php<?php $a = "[email protected]"; $b = base64_encode($a); //kodieren echo $b; $c = base64_decode($b); //dekodieren echo $c; ?> 6.javaZeichenfolge str = "[email protected]"; String encodeStr = neuer String(Base64.encode(str.getBytes())); System.out.println(encodeStr); Zeichenfolge decodeStr = Base64.base64Decode(encodeStr); System.out.println(decodeStr); 7..netzstatischer void Main(string[] args) { Console.WriteLine("Eingabe:"); var str = Console.ReadLine(); //Verschlüsselung byte[] EncryptionByte = Encoding.UTF8.GetBytes(str); var EncryptionStr = Convert.ToBase64String(EncryptionByte); Console.WriteLine("Verschlüsselungsergebnis: " + EncryptionStr); //Entschlüsselung byte[] DecryptionByte = Convert.FromBase64String(EncryptionStr); var DecryptionStr = Encoding.UTF8.GetString(DecryptionByte); Console.WriteLine("Entschlüsselungsergebnis: " + DecryptionStr); } Sehen Sie sich die mehrsprachigen Implementierungen der Base64-Zeichenfolgenkodierung und -dekodierung an, um die Feinheiten der mehrsprachigen Base64-Implementierung zu verstehen. Allgemeine Probleme mit Daten-URLsListet einige allgemeine Probleme beim Erstellen und Verwenden von Daten-URLs auf.
Tatsächlich bedeutet es:
Grammatik Das Format einer Daten-URL ist sehr einfach und man kann leicht vergessen, vor den Daten ein Komma einzufügen, oder die Daten versehentlich im Base64-Format kodieren. Formatierung in HTML Eine Daten-URL stellt eine Datei innerhalb eines Dokuments bereit, das im Verhältnis zur Breite des umgebenden Dokuments sehr breit sein kann. Längenbeschränkung Obwohl Firefox Daten-URLs einer bestimmten Länge ohne ein bestimmtes Feld unterstützt, ist es für Browser nicht erforderlich, Daten einer bestimmten maximalen Länge zu unterstützen. Beispielsweise begrenzt Opera 11 die Länge von URLs auf 65535 und von Daten-URLs auf 65529 (65529 bezieht sich auf die Länge von <data> nach der Base64-Kodierung). Gängige Browser begrenzen die Länge von Daten-URLs
Quelle: Größenbeschränkungen für Datenprotokoll-URLs Fehlende Ausnahmebehandlung Ungültige Medienparameter oder „Base64“-Formatierungsfehler werden ignoriert, aber es wird kein Fehler gemeldet. String-Abfrage wird nicht unterstützt Der Datenteil einer Daten-URL ist undurchsichtig. Wenn Sie für die Abfrage also eine Abfragezeichenfolge (z. B. <URL>?Parameterdaten) verwenden, wird nur die Abfragezeichenfolge der URL in die Daten aufgenommen. Das heißt, auch wenn die Abfrage ungültig ist, wird die Abfrage als Teil der Daten betrachtet. Sicherheitsfrage Viele Sicherheitsprobleme, wie etwa Phishing, stehen im Zusammenhang mit Daten-URLs und der Navigation zu ihnen auf der obersten Ebene des Browsers. Oben finden Sie den detaillierten Inhalt der JS-Daten-URL. Weitere Informationen zu JS finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Installationsprozess des mysql5.6.8-Quellcodes
>>: Wie autorisiert man in Linux den gesamten Inhalt eines Ordners für einen bestimmten Benutzer?
1. Manuelles Erstellen und Hinzufügen der Datei m...
Standardmäßig ist die Einstellung der Breite für B...
Inhaltsverzeichnis Einführung Verwenden des strik...
Das Anwendungsszenario ist: Die Iframe-Seite hat k...
Vorwort: Mit der kontinuierlichen Entwicklung der...
Inhaltsverzeichnis 1. Der Elefant, der nicht in d...
Trennen Sie Front- und Backend und lösen Sie domä...
Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...
In diesem Artikelbeispiel wird der spezifische Co...
1. Fazit Syntax: Limit-Offset, Zeilen Schlussfolg...
Hier ist eine Fallstudie zu Ihrer Information, wi...
Vorwort In Bezug auf die Verwendung von MySQL-Ind...
Phänomen Starten Sie den Docker-Container docker ...
dl: Definitionsliste Definitionsliste dt: Definiti...
Machen Sie sich eine Notiz, damit Sie später dara...