概要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 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...
目次1. 閉鎖の概念追加の知識ポイント: 2. 閉鎖の役割: 3. 閉鎖例3.1 liをクリックする...
目次1. カスタム指示とは何ですか? 2. 指示をカスタマイズする方法フック機能3. 応用シナリオ入...
Nginx はバージョン番号を非表示にする実稼働環境では、セキュリティ上の脆弱性の漏洩を避けるために...
落とし穴1. ネット上の多くのチュートリアルでは環境変数を設定するファイル名はmy.iniと書いてあ...
まず、Navicat for MySQL をダウンロードしてインストールする必要があります。正規版の...
目次SVG による画像キャプチャCSS部分エフェクト画像表示ソースコードアドレスこれまで見てきたもの...
MySQLテーブルパーティショニングプログラムを変更する方法1. サブテーブルの実装の原則は次のとお...
元のアドレス: https://blog.csdn.net/m0_46579864/article/...
目次序文エラー境界エラー境界を超えてトライ/キャッチwindow.onerror、エラーイベント未処...
目次1. トランジションとアニメーションの違い2. Vueを使用して基本的なCSSトランジションとア...
Macでデータベースを操作する際に個人が遭遇するデータベース起動の問題の簡単な記録1. Apple-...
ここでは、samba (ファイル共有サービス) v4.9.1 + OPENldap (バックエンド ...
問題の説明データ転送に Nginx を使用し、フロントエンドとバックエンドが分離された Spring...
目次1. インストール2. プロジェクトにインポートしてマウントする3. 使用Vue2.x はコンポ...