兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例[转]
2012-03-14 16:37
716 查看
兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例,因为这个在在线编辑器和Ajax中经常用到,所以封装成函数可以直接调用,希望对大家有帮助。
方法一:
用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如DIV,将 要转换的字符串设置为这个元素的innerText(ie支持) ||textContent(火狐支持),然后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串,显示的时候反过来就可以了(实际 上显示的时候不用通过转换,直接赋值在div就可以正常显示的)。
方 法二:
通过把正则表达式把<>和空格符转换成html编码,由于这种方式不是系统 内置的所以很容易出现有些特殊标签没有替换的情况,而且效率低下
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <title>HTMLEcode</title> </head> <body>
方法一:
用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如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(/'/g,"\'"); 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> </body> </html>
相关文章推荐
- 兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例
- 兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例
- javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
- javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
- javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
- javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
- 兼容ie和火狐的javascript HTMLEncode HTMLDecode的完整实例
- 兼容ie和火狐的javascript HTMLEncode HTMLDecode的完整实例
- IE与FF在js、css、html方面的不兼容问题
- 解决HTML内部元素的Mouse事件干扰(实例,兼容ff,ie)
- JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
- IE与FF在js、css、html方面的不兼容问题
- JS操作html时childNodes的替代方法[兼容IE与FF]
- 解决HTML内部元素的Mouse事件干扰(实例,兼容ff,ie)
- js操作iframe的div移动 | 兼容FF+IE
- [转载 js] 兼容IE FF的日历控件
- JS 获取当前日期时间(兼容IE FF)
- JS图片放大查看效果! (代码全部重构,兼容IE,FF,OP,简单,健壮)
- js_兼容IE和FF
- IE和FF JS中兼容的一些方法