innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别

 更新时间:2007年06月29日 00:00:00   作者:  
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;
   }
 );
}

相关文章

  • zTree获取当前节点的下一级子节点数实例

    zTree获取当前节点的下一级子节点数实例

    下面小编就为大家带来一篇zTree获取当前节点的下一级子节点数实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 原生js实现计算购物车总金额的示例

    原生js实现计算购物车总金额的示例

    本文主要介绍了原生js实现计算购物车总金额的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • js时间查询插件使用详解

    js时间查询插件使用详解

    这篇文章主要为大家详细介绍了js时间查询插件的使用方法,结合bootstrap进行使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • js前端登录加密解决方案

    js前端登录加密解决方案

    项目中需要前端书写登录页面,用户输入账号密码,本文主要介绍了js前端登录加密解决方案,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Radio 单选JS动态添加的选项onchange事件无效的解决方法

    Radio 单选JS动态添加的选项onchange事件无效的解决方法

    radio 单选JS动态添加的选项,onchange事件无效。使用delegate()函数可以解决该问题,具体解决方案大家通过本文详细了解下
    2016-12-12
  • Javascript 跨域访问解决方案

    Javascript 跨域访问解决方案

    由于安全方面的考虑,Javascript被限制了跨域访问的能力,但是有时候我们希望能够做一些合理的跨域访问的事情,那么怎么办呢?
    2009-02-02
  • Weex开发之WEEX-EROS开发踩坑(小结)

    Weex开发之WEEX-EROS开发踩坑(小结)

    这篇文章主要介绍了Weex开发之WEEX-EROS开发踩坑(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Javascript类型系统之String字符串类型详解

    Javascript类型系统之String字符串类型详解

    这篇文章主要介绍了Javascript类型系统之String字符串类型详解的相关资料,需要的朋友可以参考下
    2016-06-06
  • uniapp中uni.switchTab无法传参的解决办法

    uniapp中uni.switchTab无法传参的解决办法

    uni.switchTab跳转的必须是TabBar上的路径,下面这篇文章主要给大家介绍了关于uniapp中uni.switchTab无法传参的解决办法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • 浅谈关于JavaScript的语言特性分析

    浅谈关于JavaScript的语言特性分析

    本篇文章小编为大家介绍,浅谈关于JavaScript的语言特性分析,有需要的朋友可以参考一下
    2013-04-04

最新评论