您现在的位置: 365建站网 > 365文章 > 兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例

兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例

文章来源:365jz.com     点击数:2211    更新时间:2009-09-18 10:13   参与评论

兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例,因为这个在在线编辑器和Ajax中经常用到,所以封装成函数可以直接调用,希望对大家有帮助。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>HTMLEcode</title>
</head>
<body>

方法一:<BR>
<BR>
用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如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>
方法二:<BR>
<BR>
通过把正则表达式把<>和空格符转换成html编码,由于这种方式不是系统内置的所以很容易出现有些特殊标签没有替换的情况,而且效率低下
<script type="text/javascript">  

   function HTMLEncode2(str)
   {  
         var s = "";
         if(str.length == 0) return "";
         s    =    str.replace(/&/g,"&amp;");
         s    =    s.replace(/</g,"&lt;");
         s    =    s.replace(/>/g,"&gt;");
         s    =    s.replace(/ /g,"&nbsp;");
         s    =    s.replace(/\'/g,"&#39;");
         s    =    s.replace(/\"/g,"&quot;");
         return   s;  
   }  
   function HTMLDecode2(str)
   {  
         var s = "";
         if(str.length == 0)   return "";
         s    =    str.replace(/&amp;/g,"&");
         s    =    s.replace(/&lt;/g,"<");
         s    =    s.replace(/&gt;/g,">");
         s    =    s.replace(/&nbsp;/g," ");
         s    =    s.replace(/&#39;/g,"\'");
         s    =    s.replace(/&quot;/g,"\"");
         return   s;  
   }
var html = "<br>ccccc<p>aaaaa</p>";
var encodeHTML = HTMLEncode2(html);
alert("方式二:" + encodeHTML);
var decodeHTML = HTMLDecode2("方式二:" + encodeHTML);
alert(decodeHTML);
</script>
</body>
</html>

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (2211人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号