本文介绍如何通过扩展 JavaScript 的 String 原型,利用 DOM 元素的 innerHTML、textContent 和 innerText 属性,实现字符串的 HTML 编码与解码功能。该方法通过动态创建 div 元素,利用浏览器内置的解析机制完成特殊字符的转义与还原,适用于需要处理用户输入或防止 XSS 攻击的场景。
JavaScript 扩展 String 对象实现 HTML 编码与解码
具体实现代码如下所示:
String.prototype.HTMLEncode = function() {
var temp = document.createElement("div");
(temp.textContent != null) ? (temp.textContent = this) : (temp.innerText = this);
var output = temp.innerHTML;
temp = null;
return output;
}
String.prototype.HTMLDecode = function() {
var temp = document.createElement("div");
temp.innerHTML = this;
var output = temp.innerText || temp.textContent;
temp = null;
return output;
}