javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)


Posted in Javascript onJune 02, 2009

方法一:
用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如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>
Javascript 相关文章推荐
JS获取IUSR_机器名和IWAM_机器名帐号的密码
Dec 06 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
Feb 07 Javascript
理解JavaScript的变量的入门教程
Jul 07 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
Aug 05 Javascript
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 jQuery
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
Mar 13 Javascript
JavaScript原型链与继承操作实例总结
Aug 24 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
Oct 18 Javascript
小程序点击图片实现自动播放视频
May 29 Javascript
JavaScript怎样在删除前添加确认弹出框?
May 27 Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 Javascript
Javascript String对象扩展HTML编码和解码的方法
Jun 02 #Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
Jun 02 #Javascript
慎用 somefunction.prototype 分析
Jun 02 #Javascript
网页和浏览器兼容性问题汇总(draft1)
Jun 01 #Javascript
javascript 图片上传预览-兼容标准
Jun 01 #Javascript
javascript 关闭IE6、IE7
Jun 01 #Javascript
帮助避免错误的Javascript陷阱清单
May 31 #Javascript
You might like
FCKeditor添加自定义按钮
2008/03/27 PHP
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP 验证登陆类分享
2015/03/13 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
共享自己写一个框架DreamScript
2007/01/20 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
浅析JavaScript动画
2015/06/10 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
Python实现的RSS阅读器实例
2015/07/25 Python
Python调用C++程序的方法详解
2017/01/24 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
python绘制雪景图
2019/12/16 Python
python实现人脸签到系统
2020/04/13 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
学习党课思想汇报
2013/12/29 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
房屋所有权证明
2015/06/19 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
python中print格式化输出的问题
2021/04/16 Python
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技