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

<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,"&amp;");s    =    s.replace(/</g,"&lt;");s    =    s.replace(/>/g,"&gt;");s    =    s.replace(/ /g,"&nbsp;");s    =    s.replace(/\'/g,"'");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(/'/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>

转载于:https://www.cnblogs.com/yingzi/archive/2012/03/14/2396156.html

兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例[转]相关推荐

  1. 兼容IE和FF的js脚本做法(比较常用)[问题点数:20分]

    兼容IE和FF的js脚本做法(比较常用) [问题点数:20分] IBM_hoojo (hoojo) 等 级: 结帖率:66.67% 楼主发表于:2010-07-03 12:18:15 JScript ...

  2. php网速测试程序,js简单网速测试方法完整实例

    本文实例讲述了js简单网速测试方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: /p> "http://www.w3.org/TR/html4/loose.d ...

  3. 设为首页 和 收藏本站js代码 兼容IE,chrome,ff

    设为首页 和 收藏本站js代码 兼容IE,chrome,ff //设为首页 function SetHome(obj,url){ try{ obj.style.behavior='url(#defau ...

  4. ahjesus 获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome

    ahjesus 返回光标位置兼容IE,FF和Chrome, 说明更新(2013-04-24){ 今天收到反馈说这个例子没作用了,经过查证测试发现是因为使用的jquery的版本过高引起的 $(eleme ...

  5. html4.0.1兼容ie7,CSS 完美兼容IE6/IE7/FF的通用hack方法

    CSS 完美兼容IE6/IE7/FF的通用hack方法 发布时间:2009-03-20 00:27:16   作者:佚名   我要评论 一.CSS HACK 以下两种方法几乎能解决现今所有HACK. ...

  6. DIV CSS完美兼容IE6/IE7/FF的通用方法

    关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HA ...

  7. [转]CSS完美兼容IE6/IE7/FF的通用hack方法

    关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HA ...

  8. firefox 和 ie 事件处理的细节,研究,再研究-----书写同时兼容ie和ff的事件处理代码...

    在ie中,事件对象是作为一个全局变量来保存和维护的. 所有的浏览器事件,不管是用户触发 的,还是其他事件, 都会更新window.event 对象. 所以在代码中,只要轻松调用 window.even ...

  9. div+css 布局下兼容IE6 IE7 FF常见问题

    div+css 布局下兼容IE6 IE7 FF常见问题 收藏 所有浏览器 通用 (市面上主要用到的IE6 IE7 FF) height: 100px; IE6 专用 _height: 100px; I ...

最新文章

  1. 皮一皮:21世纪了还有这样的事情?
  2. WinForm编程数据视图之DataGridView浅析(续)
  3. git url地址无效_如何同步多个 git 远程仓库
  4. 正则表达式获取中括号里面的内容
  5. scala学习---2
  6. python是什么?python该怎么学?一招告诉你!!
  7. 【HISI系列】之IP/MAC地址配置
  8. matlab拟合函数导出,excel里曲线拟合的公式怎么导出?()
  9. es7.3.2中文+拼音分词 排除同音字
  10. 齿轮的正负变位设计要点
  11. 20220915使用python3下载ts格式的视频切片文件
  12. C语言回调函数详解及实例
  13. 如何理解封装、继承和多态
  14. 在线解方程的计算机,解方程计算器在线使用 方程计算器如何在线使用
  15. Excel一键给操作内容添加批注作者
  16. Matlab里fprintf个人理解(fprintf、display、%f、%f\n)
  17. C语言之while循环
  18. #define 喵 int_【吃鸡大作战第三季】第12集 告白小雪喵
  19. 卡内基梅隆大学计算机专业介绍,美国卡内基梅隆大学计算机专业介绍
  20. nodejs 将对象转化为query(URLSearchParams)

热门文章

  1. catia中sew的用法_CATIA超级副本(PowerCopy)使用方法总结 | 坐倚北风
  2. java页面登陆密码_java实现页面登陆2 密码加密
  3. 网站不大但加载很慢怎么优化_博客网站首页加载优化
  4. python学习-序列化对象(pickle)
  5. 线程打印_线程知识回顾
  6. java写入txt文件 不替换_java非覆盖写入文件及在输出文本中换行
  7. linux服务器上装R语言,R语言 在linux上的安装
  8. oracle rac ora 12560,rac ORA-12541: TNS:no listener问题 非常急!!
  9. 高等数学与python高级应用_python高级应用程序与设计
  10. mysql client centos_centos7 安装mysql和mysqlclient遇到的那些坑