innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别

所属分类: 网络编程 / JavaScript 阅读数: 504
收藏 0 赞 0 分享
innerText 属性在 IE 浏览器中可以得到当前元素过滤掉 HTML Tags 之后的文本内容,在某些时候还是比较有用。但类似的非标准属性/方法在其他浏览器中并不一定都得到支持。
类似的像 insertAdjacentElement , insertAdjacentElement , insertAdjacentHTML , insertAdjacentText 等。如果需要使用这些非标准的方法,或者已有的代码大量使用了这些方法的话,就必须为其他浏览器提供对应的 prototype 定义。比如:


var isMinNS5 = (navigator.appName.indexOf("Netscape") >= 0 &&
               parseFloat(navigator.appVersion) >= 5) ? 1 : 0;

if (isMinNS5){
 HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode){
   switch (where){
   case ’beforeBegin’:
     this.parentNode.insertBefore(parsedNode,this)
     break;
   case ’afterBegin’:
     this.insertBefore(parsedNode,this.firstChild);
     break;
   case ’beforeEnd’:
     this.appendChild(parsedNode);
     break;
   case ’afterEnd’:
     if(this.nextSibling){
       this.parentNode.insertBefore(parsedNode,this.nextSibling);
     }
     else{
       this.parentNode.appendChild(parsedNode)
     }
   break;
   }
 }
 HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
   var r = this.ownerDocument.createRange();
   r.setStartBefore(this);
   var parsedHTML = r.createContextualFragment(htmlStr);
   this.appendChild(parsedHTML)
 }
 HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
   var parsedText = document.createTextNode(txtStr)
   this.insertAdjacentElement(where,parsedText)
 }
 HTMLElement.prototype.__defineGetter__
 (
   "innerText",
   function(){
     var anyString = "";
     var childS = this.childNodes;
     for(var i=0; i<childS.length; i++){
       if(childS[i].nodeType==1)
         anyString += childS[i].tagName=="BR" ? ’\n’ : childS[i].innerText;
       else if(childS[i].nodeType==3)
         anyString += childS[i].nodeValue;
     }

     return anyString;
   }
 );
}
更多精彩内容其他人还在看

JSONP原理及简单实现

这篇文章主要介绍了JSONP原理及简单实现的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

浅析JSONP技术原理及实现

这篇文章主要介绍了浅析JSONP技术原理及实现 的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

使用Web Uploader实现多文件上传

这篇文章主要介绍了使用Web Uploader实现多文件上传的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

json的使用小结

下面小编就为大家带来一篇json的使用小结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

非常实用的js验证框架实现源码 附原理方法

这篇文章主要为大家详细介绍了一个非常实用的js验证框架实现源码,并附原理方法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

js验证框架之RealyEasy验证详解

这篇文章主要为大家详细介绍了js验证框架之RealyEasy验证,记录了RealyEasy验证的使用步骤,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

webpack中引用jquery的简单实现

下面小编就为大家带来一篇webpack中引用jquery的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

JavaScript必知必会(五) eval 的使用

这篇文章主要介绍了JavaScript必知必会(五) eval 的使用 的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

JavaScript必知必会(六) delete in instanceof

这篇文章主要介绍了JavaScript必知必会(六) delete in instanceof的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

JavaScript必知必会(七)js对象继承

这篇文章主要介绍了JavaScript必知必会(七)js对象继承的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多