フロントエンド開発では、多くの場合、HTML タグを含む文字列を処理する必要があります。ただし、HTML タグをページに直接挿入すると、悪意のあるスクリプト インジェクションや XSS 攻撃など、セキュリティ上の問題が発生する可能性があります。したがって、HTML タグをエスケープして、ページ上で元のテキストとして表示されるようにする必要があります。
jQuery では、.text()
メソッドを使用して HTML タグをエスケープできます。このメソッドは、HTML タグ内の <、>、&、"、および ' などの特殊文字をエンティティでエンコードされた形式に変換できます。次に例を示します。
<div id="my_div"></div>
var my_string = '<img src="image.jpg" alt="My Image">'; $('#my_div').text(my_string);
このコードを実行すると、ページは次のようになります。実際の画像の代わりに、エスケープ文字列 <img src="image.jpg" alt="My Image">
を表示します。この場合、.html()## を使用できます。 # エスケープされた文字列を認識される HTML タグに再変換するメソッド。例:
var my_string = '<img src="image.jpg" alt="My Image">'; $('#my_div').text(my_string); $('#my_div').html($('#my_div').text());
.html() メソッドを使用する場合は、渡される文字列が信頼できるものであることを確認してください。このメソッドは string に対してエスケープを実行しないため、悪意のあるスクリプトを含む文字列が渡された場合、
.html() メソッドに直接アクセスすると、セキュリティ上の問題が発生します。
.escapeSelector() および
.unescapeSelector() メソッドも提供されており、セレクター内の特殊文字をそれぞれエスケープおよびアンチエスケープするために使用できます。例:
var my_selector = '#my_id .my_class'; var escaped_selector = $.escapeSelector(my_selector); console.log(escaped_selector); // 输出 #my_id .my_class var unescaped_selector = $.unescapeSelector(escaped_selector); console.log(unescaped_selector); // 输出 #my_id .my_class
.escapeSelector() メソッドはセレクター文字列内のスペースとピリオドをエスケープ形式にエスケープしますが、
.unescapeSelector() メソッドはセレクターの正確性を確保するためにそれらを元の文字に戻します。 .
以上がjqueryエスケープHTMLタグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。