Ü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 "foo@gmail.com" | base64 2.Javascriptvar encodedData = window.btoa("foo@gmail.com"); // Kodierung var decodedData = window.atob("Zm9vQGdtYWlsLmNvbQ=="); // Dekodierung console.log(encodedData,decodedData) 3.nodejs//Base64-Kodierung var b = neuer Puffer("foo@gmail.com"); 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("foo@gmail.com") base64.b64decode("Zm9vQGdtYWlsLmNvbQ==") 5.php<?php $a = "foo@gmail.com"; $b = base64_encode($a); //kodieren echo $b; $c = base64_decode($b); //dekodieren echo $c; ?> 6.javaZeichenfolge str = "foo@gmail.com"; 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?
Inhaltsverzeichnis Vorwort Text 1. Panel 2. Huaro...
Als Front-End-Ingenieure müssen wir mit dem IE ve...
Im Bereich Design gibt es jedes Jahr unterschiedl...
Inhaltsverzeichnis Bidirektionales Bindungsprinzi...
In diesem Artikel wird der spezifische Code für J...
Inhaltsverzeichnis 1. Einleitung 2. Bereiten Sie ...
Laut canisue (http://caniuse.com/#search=border-r...
Wie deinstalliere ich Mysql vollständig? Befolgen...
Inhaltsverzeichnis 1. Einleitung 2. Erster Eindru...
Inhaltsverzeichnis Projekthintergrund Start Erste...
Inhaltsverzeichnis Vorwort Text Primitive Typen P...
Vorwort Dieser Artikel stellt hauptsächlich die V...
1: Durchsatz (Anfragen pro Sekunde) Eine quantita...
Öffnen Sie zunächst die virtuelle Maschine Öffnen...
Vorwort Die Zeichenfolgentypen der MySQL-Datenban...