概要Canvas には、キャンバスをデータ URL の形式に変換する、非常によく使用されるメソッド canvas.toDataURL() があります。 <キャンバスid="キャンバス" 高さ="2" 幅="2"></キャンバス> var キャンバス = document.getElementById('キャンバス'); var dataURL = canvas.toDataURL(); console.log(データURL); /* * データ:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAACCAYAAABytg0kAAAADklEQVQYV2NkgAJGGAMAAC0AA03DhRMAAAAASUVORK5CYII= */ では、data:[MIME type];base64 で始まるこのデータ URL とは一体何なのでしょうか? データ URL の使用を開始する
データ URL データ URL と従来の URL の違いは何ですか? 最新のブラウザは、データ URL をナビゲーションを担当する URL ではなく、一意の不透明なオリジンとして扱います。
上記の結果から次のことがわかります。 データ URL は従来の URL とは異なります。従来の URL は、ブラウザのアドレス バーに入力して、ターゲット アドレスに直接移動できます。一方、データ URL はデータ URL 表現であり、URL を使用してデータを表すものと理解できます。 通常、ここでのデータは画像を指します。 ブラウザのアドレスバーに入力した後、データ URL はどのように表示されますか? 通常、この URL で表される画像を見ることができます。 <!DOCTYPE html> <html lang="ja"> <本文> <キャンバスid="キャンバス"></キャンバス> </本文> <スクリプト> var キャンバス = document.getElementById("キャンバス"); var ctx = canvas.getContext("2d"); ctx.font = "48px セリフ"; ctx.fillText("こんにちはキャンバス", 0, 75 + 24); var dataURL = canvas.toDataURL(); console.log(データURL); </スクリプト> </html> データURL構文データ URL の 4 つの部分は何ですか?
[<mediatype>] 詳細
[;base64] と <data> の詳細
一般的なデータ URL 形式
シンプルなテキスト/プレーンデータ 「こんにちは世界」
引用符とスペースのパーセントエンコード (URL エンコード) に注意してください。 シンプルなテキスト/パリンデータのBase64形式 「こんにちは世界」
HTML スニペット: 通常のタグ <h1>こんにちは、世界!</h1>
HTMLフラグメント: jsを実行するスクリプトタグ <script>アラート('hi');</script>
js スクリプト タグを実行します。終了スクリプト タグが必要であることに注意してください。 複数言語の文字列のBase64エンコードとデコード
base64 文字列は ASCII 文字のみで構成されているため URL セーフであり、データ URL の <data> に base64 が適用されます。 Unix、JavaScript、Node、Python、PHP、Java、.NET で Base64 エンコードを実装する
1. Unixデコード: echo "Zm9vQGdtYWlsLmNvbQ==" | base64 -D エンコード: echo "[email protected]" | base64 2.JavaScriptvar encodingData = window.btoa("[email protected]"); // エンコード var decodedData = window.atob("Zm9vQGdtYWlsLmNvbQ=="); // デコード console.log(encodedData,decodedData) 3.ノード//base64 エンコーディング var b = new Buffer("[email protected]"); var s = b.toString('base64') console.log("メールコード:"+s) //base64 デコード var b = new Buffer("Zm9vQGdtYWlsLmNvbQ==","base64") var s = b.toString(); console.log("メールボックスのデコード:"+s) 4. パイソンbase64をインポート base64.b64encode("[email protected]") base64.b64デコード("Zm9vQGdtYWlsLmNvbQ==") 5.php<?php $a = '[email protected]'; $b = base64_encode($a); //エンコード echo $b; $c = base64_decode($b); // デコード echo $c; ?> 6.ジャワ文字列 str = "[email protected]"; 文字列 encodeStr = 新しい文字列(Base64.encode(str.getBytes())); System.out.println(encodeStr); 文字列 decodeStr = Base64.base64Decode(encodeStr); System.out.println(デコードStr); 7..ネット静的void Main(文字列[] 引数) { Console.WriteLine("入力:"); var str = Console.ReadLine(); //暗号化バイト[] EncryptionByte = Encoding.UTF8.GetBytes(str); var EncryptionStr = Convert.ToBase64String(EncryptionByte); Console.WriteLine("暗号化結果: " + EncryptionStr); //復号化バイト[] DecryptionByte = Convert.FromBase64String(EncryptionStr); var DecryptionStr = Encoding.UTF8.GetString(DecryptionByte); Console.WriteLine("復号化結果: " + DecryptionStr); } base64 の複数言語実装の詳細を理解するには、base64 文字列エンコードとデコードの複数言語実装を確認してください。 一般的なデータ URL の問題データ URL の作成および使用時に発生する一般的な問題をいくつか示します。
実際、それは次のことを意味します:
文法 データ URL の形式は非常に単純なので、データの前にコンマを追加することを忘れたり、誤ってデータを base64 形式でエンコードしたりすることが起こりがちです。 HTML での書式設定 データ URL はドキュメント内のファイルを提供しますが、そのファイルは、囲んでいるドキュメントの幅に比べて非常に幅が広くなる場合があります。 長さ制限 Firefox は特定のフィールドのない特定の長さのデータ URL をサポートしていますが、ブラウザは特定の最大長のデータをサポートする必要はありません。たとえば、Opera 11 では、URL の長さが 65535 に制限され、データ URL の長さは 65529 に制限されます (65529 は、base64 エンコード後の <data> の長さを示します)。 主流のブラウザはデータURLの長さを制限している
出典: データプロトコル URL サイズの制限 例外処理の欠如 無効なメディア パラメータまたは 'base64' フォーマット エラーは無視されますが、エラーは報告されません。 文字列クエリはサポートされていません データ URL のデータ部分は不透明であるため、クエリ文字列 (<url>?parameter-data など) を使用してクエリを実行すると、URL のクエリ文字列のみがデータに含まれます。つまり、クエリが無効な場合でも、クエリはデータの一部と見なされます。 秘密の質問 フィッシングなどの多くのセキュリティ問題は、データ URL と、ブラウザの最上位レベルでのその URL への移動に関連しています。 上記はJSデータURLの詳しい内容です。JSの詳細については、123WORDPRESS.COMの他の関連記事にも注目してください! 以下もご興味があるかもしれません:
|
<<: mysql5.6.8 ソースコードのインストールプロセス
>>: Linux で特定のユーザーにフォルダーのすべてのコンテンツを許可するにはどうすればよいですか?
序文:インターネット技術の継続的な発展に伴い、MySQL 関連のエコシステムはますます充実し、ますま...
カスタム タグは XML ファイルと HTML ファイルで自由に使用できますが、いくつか注意すべき点...
関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...
まず、データベース パーティショニングとは何でしょうか?以前、MySQL のテーブル パーティショニ...
ページの主要部分: <body> <ul id="メニュー"&...
目次実際の戦闘プロセスまずは主なコマンドと詳細を一つずつ説明しましょう起動が成功したかどうかを確認す...
目次背景例誤解 - コールスタックを表示するためにウォッチでブレークポイントを設定する正しいアプロー...
ウェブ上の一部の画像の src または CSS 背景画像 URL の後に、data:image/pn...
序文MySQL の権限テーブルは、データベースの起動時にメモリにロードされます。ユーザーが ID 認...
目次1. フックとは何ですか? 2. フックはなぜ現れるのでしょうか? 3. よく使われるフックは何...
1. パーティションテーブルの意味パーティション テーブル定義は、任意のサイズに設定できるルールに従...
これが何を意味するのかを理解するには、まずサブディレクトリとは何かを知る必要があります。では、サブデ...
MySQL には、「group_concat」という関数があります。通常の使用では問題がないかもしれ...
序文ミニプログラムを開発する過程では、録音機能を実装し、録音を再生し、録音をサーバーにアップロードす...
MySQL では、ほとんどのインデックス (PRIMARY KEY、UNIQUE、INDEX、FUL...