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

方法一:
用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如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>

时间: 2024-10-30 05:14:22

javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)_javascript技巧的相关文章

JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)_javascript技巧

本文实例讲述了JS读取XML文件数据并以table形式显示数据的方法.分享给大家供大家参考,具体如下: 先看xml文件: <?xml version="1.0" standalone="yes"?> <student> <stuinfo> <stuName>张秋丽</stuName> <stuSex>女 </stuSex> <stuAge>18</stuAge>

JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】_javascript技巧

本文实例讲述了JS实现兼容各种浏览器的高级拖动方法.分享给大家供大家参考,具体如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;

JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)_javascript技巧

本文实例讲述了JS+CSS实现鼠标经过弹出一个DIV框效果.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

IE8的JavaScript点击事件(onclick)不兼容的解决方法_javascript技巧

博客园闪存分页是用JavaScript生成的,今天发现在IE8下点击页码不能翻页,翻页操作是在当前页码的onclick事件中进行的. 开始代码是这么写的: 复制代码 代码如下: var a = document.createElement("a");a.setAttribute("onclick", this.ClickFunctionName + "(" + pageIndex + ");Pager.SetCurrent("

Javascript 网页黑白效果实现代码(兼容IE/FF等)_javascript技巧

下面的演示地址是局部灰色 局部灰色 演示地址: http://demo.jb51.net/js/grayscale/index.html完全灰色 演示地址: http://demo.jb51.net/js/grayscale/demo2.htm使用方法: 1.首先在网页中引入grayscale.js文件. 2.执行grayscale函数即可. 示例代码: 复制代码 代码如下: grayscale(document.body); //整站变成灰色 grayscale(document.getEle

javascript读写XML实现广告轮换(兼容IE、FF)_javascript技巧

xml结构如下 复制代码 代码如下: <ad><tupian>http://www.seehaha.com/images/060901-150.100.2.gif</tupian><tupian>http://www.seehaha.com/xml/061009-300.100.jpg</tupian><dizhi>http://www.seehaha.com/plan/</dizhi><dizhi>http:

防止页面被iframe(兼容IE,Firefox火狐)_javascript技巧

以前防止页面被iframe使用的是这段代码 复制代码 代码如下: <script type="text/javascript> if (top.location !== self.location) { top.location=self.location; } </script> 但是在Firefox里你会发现页面会一直不停的在刷. 页面根本没法用. 这里是因为firefox windows.top如果没有那么就是空,在IE下windows.top就是本窗口 页面不断的

JS 按钮点击触发(兼容IE、火狐)_javascript技巧

复制代码 代码如下: function clickButton(id) {            if (document.all) {                document.getElementById(id).click();            }            else {                var evt = document.createEvent("MouseEvents");                evt.initEvent(&q

Javascript公共脚本库系列(一): 弹出层脚本_javascript技巧

一.摘要 本系列文章是为了抽象通用的,跨浏览器的脚本方法. 本篇文章讲解弹出浮动层的javascript函数, 以及函数的原理和使用注意事项. 二.实现效果 用脚本弹出浮动层是我们最常用的脚本方法之一.下面是效果图:  点击图中的"航空公司"后,会在"航空公司"下面弹出浮动层. 在网上弹出框的脚本相当多, 而且还有各种第三方JS框架可供我们使用.但是其中有的脚本过于简单,仅仅粗略的实现弹出效果而忽略了灵活性,通用性和跨浏览器特性. 使用JS框架又有些杀鸡用牛刀.所以