Mach3.laBlog

細かすぎて伝わらないjQuery拡張 (6) “$.escapeHTML” – Advent Calendar 2016

この記事は賞味期限切れです。(更新から1年が経過しています)

$.escapeHTML() は、その名の通りHTML文字列をエスケープするための関数です。

$.escapeHTML()

使い方

var str = "<script>alert(1);</script>";
$.escapeHTML(str); // => "&lt;script&gt;alert(1);&lt;/script&gt;"

特に説明の必要はありませんね。

コード

$.escapeHTML = function(str){
    var el = document.createElement("i");
    el.appendChild(document.createTextNode(str));
    return el.innerHTML;
};

文字列をテキストノードとして要素に追加すると勝手にエスケープするので、それを活用します。 HTMLのレンダーをライブラリに頼るようになってからは、(ライブラリがエスケープしてくれるので)単体で使う事は減った気がします。

コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*