javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
发布时间:2016-12-30 来源:查字典编辑
摘要:方法一:用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如DIV,将要转换的字符串设置为这个元素的innerText(ie支持...

方法一:

用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如DIV,将要转换的字符串设置为这个元素的innerText(ie支持)||textContent(火狐支持),然后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串,显示的时候反过来就可以了(实际上显示的时候不用通过转换,直接赋值在div就可以正常显示的)。

复制代码 代码如下:

<script type="text/javascript">

function HTMLEncode(html)

{

var temp = document.createElement ("div");

(temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);

var output = temp.innerHTML;

temp = null;

return output;

}

function HTMLDecode(text)

{

var temp = document.createElement("div");

temp.innerHTML = text;

var output = temp.innerText || temp.textContent;

temp = null;

return output;

}

var html = "<br>dffdf<p>qqqqq</p>";

var encodeHTML = HTMLEncode(html);

alert("方式一:" + encodeHTML);

var decodeHTML = HTMLDecode(encodeHTML);

alert("方式一:" + decodeHTML);

</script>

方法二:

通过把正则表达式把<>和空格符转换成html编码,由于这种方式不是系统内置的所以很容易出现有些特殊标签没有替换的情况,而且效率低下

复制代码 代码如下:

<script type="text/javascript">

function HTMLEncode2(str)

{

var s = "";

if(str.length == 0) return "";

s = str.replace(/&/g,"&");

s = s.replace(/</g,"<");

s = s.replace(/>/g,">");

s = s.replace(/ /g,"");

s = s.replace(/'/g,"");

s = s.replace(/"/g,""");

return s;

}

function HTMLDecode2(str)

{

var s = "";

if(str.length == 0) return "";

s = str.replace(/&/g,"&");

s = s.replace(/</g,"<");

s = s.replace(/>/g,">");

s = s.replace(//g," ");

s = s.replace(/");

s = s.replace(/"/g,""");

return s;

}

var html = "<br>ccccc<p>aaaaa</p>";

var encodeHTML = HTMLEncode2(html);

alert("方式二:" + encodeHTML);

var decodeHTML = HTMLDecode2("方式二:" + encodeHTML);

alert(decodeHTML);

</script>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类