概要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 で特定のユーザーにフォルダーのすべてのコンテンツを許可するにはどうすればよいですか?
この記事では、Linux で PHP curl 拡張機能をインストールする方法について説明します。ご...
この記事では、Windows 10環境でのMySQL 5.5のインストールと使用方法を紹介します。リ...
最近、プロジェクトでは kubernetes (以下、k8s と表記、k と s の間には 8 つの...
フォームのアクションは URL ジャンプとは異なります。フォームはバックグラウンドにデータを渡すこと...
この記事では、年、月、日の3段階のリンクを実現するためのJavaScriptの具体的なコードを参考ま...
OP が現在のファームウェアで Web ページを開くと、常に 50% にズームアウトされてから表示さ...
HTMLでCSSを定義するには、埋め込み、リンク、インラインの3つの方法が一般的に使用されます。 1...
<html> <ヘッド> <meta http-equiv="...
ダウンロードダウンロードアドレス: https://redis.io/download /usr/l...
目次SaltstackがZabbixサービスを導入httpd、mysql、phpをインストールするh...
準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...
初め:コードをコピーコードは次のとおりです。 <input type="text&q...
目次1 Dockerをインストールする2 国内ミラーソースの設定3 中国語環境基本版Centos7イ...
目次ネット上の質問から生まれた思考MySQL ソースコマンドネット上の質問から生まれた思考今日仕事中...
目次機能コンポーネント非同期コンポーネントの書き方とdefineAsyncComponentメソッド...