概要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 で特定のユーザーにフォルダーのすべてのコンテンツを許可するにはどうすればよいですか?
次のコマンドを使用できます: docker tag [イメージID] [名前]:[バージョン]例えば...
この記事では、JavaScriptの長い画像スクロールの具体的なコードを参考までに共有します。具体的...
1. はじめにMYSQL の MDL ロックは常に頭痛の種でした。ロックについて話すとき、通常は I...
チェックボックスは Web ページで非常によく使用されます。e コマースの Web サイトでもプラッ...
序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...
目次ライフサイクルの変化反応的な参照vue2.x では ref を使用して要素タグを取得します。vu...
目次序文スタックと2つのキューを理解する実行プロセス簡単な例より難しい例要約する序文以下の内容はブラ...
1. コンテナに入るdocker run [オプション] イメージ名 [起動コンテナに渡されるコマン...
タブ: カテゴリ + 説明タグバー: カテゴリ => ユーザーに現在地と目的地を知らせる1. ...
JDKをダウンロードしてインストールするステップ 1: まず、公式 Web サイト http://...
目次概要オブジェクトにメソッドを定義するオブジェクトリテラルオブジェクトプロトタイプ動的コンテキスト...
目次予防必要条件AWSアカウントを申請する仮想マシンの申請と有効化仮想マシンを申請するセキュリティグ...
質問画像とテキストのシームレスなスクロールは、一般的に携帯電話では良い効果をもたらしますが、一部のモ...
上部のメニュー バーに検索ボックスを配置するのは一般的なシナリオですが、検索機能がそれほど頻繁に使用...
最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...