当前位置:首页 > JavaScript

一个兼容ie和火狐的javascript HTMLEncode HTMLDecode的完整实例

canca16年前 (2010-03-08)JavaScript718

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

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<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>

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/298.html

标签: JavaScript
分享给朋友:

“一个兼容ie和火狐的javascript HTMLEncode HTMLDecode的完整实例” 的相关文章

javascript 中面向对象編程 (类的继承)

// 人的基類var Person=new ( function(){  var sex;  var name;  this.getSex=function() &nbs…

javascript 中面向对象编程 (类的构造)

javascript 中面向对象编程 (类的构造)

不論是用java,還是c#,又或是vb,構建一個對象都很簡單,都可以采用 classobj =new classobj()的方法構造一個類,然后使用其中的屬性以及方法,其實javascript也是一樣可以實現的。    示例:建立一個js文件,定義一個...…

Javascript 逻辑表达式

1>逻辑表达式    看例子:     var cc;      var  dd=new Object();      var false1="false…

event事件兼容mozilla firefox的问题

本来一个写好了的脚本在IE下正常,可是在mozilla firefox中我们发现程序报类似如下的错误: event is not defined obj has no properties 原因是Firefox中使用了不同的事件对象模型,不同于IE Dom,用的是W3C Dom. 下是我在网上找到的…

JavaScript对粘贴板的全操作

<html>    <head>        <script language="javascript">function copy_clip(copyObjectName…

FCKeditor获取内容以及赋值

1、获取编辑器中HTML内容 function getEditorHTMLContents(EditorName) { var   oEditor = FCKeditorAPI.GetInstance(EditorName); return(oEditor.GetXHTML(tr…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。