`
qhd_liwei
  • 浏览: 102620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

innerText兼容火狐和IE

阅读更多
IE中的获取文本方法innerText在firefox中不支持
firefox改成了textContent方法/属性
并且在Firefox中文本中间的空白自符被无情的替换没了
使用起来异常不方便
现在好了,用Javascript重新定义了innerText方法
使得在Firefox中也可以使用innerText方法
并且此方法解决了firefox中空白字符的问题

使用方法:
将下面的脚本放在页面内
不管ie还是firefox都可以使用obj.innerText提取文本了

<script language="javascript">
function isIE(){ //ie?
   if (window.navigator.userAgent.toLowerCase().indexOf("msie")>=1)
    return true;
   else
    return false;
}

if(!isIE()){ //firefox innerText define
   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].textContent;
      else if(childS[i].nodeType==3)
       anyString += childS[i].nodeValue;
     }
     return anyString;
    }
   );
   HTMLElement.prototype.__defineSetter__(     "innerText",
    function(sText){
     this.textContent=sText;
    }
   );
}
</script>

分享到:
评论

相关推荐

    火狐与IE浏览器兼容代码

    火狐与IE浏览器兼容代码 这是其中一个,我觉得很不错的。 原理:采用innerText 或者 innerHTML

    IE浏览器兼容Firefox的JS脚本的代码

    添加事件兼容写法 5.Firefox注册innerText写法 6.长度 7.父控件下的子控件 8.XmlHttp 1.window.event兼容脚本 function getEvent(){ //获取浏览器事件,同时兼容ie和ff的写法 if(document.all) return window.event;...

    Firefox和IE浏览器兼容JS脚本写法小结

    window.event兼容脚本 1.2.屏蔽Form提交事件 3.获取事件源 4.添加事件兼容写法 5.Firefox注册innerText写法 6.长度 7.父控件下的子控件 8.XmlHttp

    兼容IE与Firefox的js 复制代码

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]下面的内容主要是应用了textarea作为内容载体,如果是div等,直接网页标记就需要用到innerText,但firefox火狐浏览器并不支持innerText,所以又要考虑如何让firefox...

    让FireFox支持innerText的实现代码

    因为安全问题 1、为firefox dom模型扩展属性 2、currentStyle属性可以取得实际的style状态 3、IE实现innerText时考虑了display方式,如果是block则加换行 4、为什么不用textContent?因为textContent没有考虑元素的...

    46种常见的浏览器兼容性问题大汇总

    2. innerText在IE中能正常工作,但在FireFox中却不行. 3 3. CSS透明 3 4. css中的width和padding 3 5. FF和IE BOX模型解释不一致导致相差2px 3 6. IE5 和IE6的BOX解释不一致 3 7. ul和ol列表缩进问题 3 8. ...

    innerText和textContent对比及使用介绍

    今天在使用innerText时遇到一个兼容性问题,FireFox不支持innerText方法,查了下MDN,发现FireFox下有个类似的方法,叫textContent,它和IE的innerText类似, 都是用来获取(设置)元素中text的方法。语法 •设置 ...

    Javascript 兼容firefox的一些问题

    obj.innerText = “XXX”; 在FF里好像偶尔也有问题. 换成obj[removed] = “XXX”;就行了. 3. var olE = document.body.onload; 获得body的onload函数. IE没问题.FF不行.改成[removed].解决. 至于[removed]和body....

    firefox下获取下列框选中option的text的代码

    因为textContent没有考虑元素的display方式,所以不完全与IE兼容 代码: 在IE6,7,8 和firefox 2,3下测试均通过。 My 1111 hahaha My 2222 My 3333 My 4444 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] ...

    兼容IE,firefox的获取节点的文本值的javascript代码

    javascript获取节点的文本值,已经考虑了兼容性。大家可以放心使用。注意了这里的兼容没有使用innerText,如果要使用兼容innerText,请参考脚本之家以前发布的文章。

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

    方法一: 用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如DIV,将要转换的字符串设置为这个元素的innerText(ie支持)||textContent(火狐支持),然后返回这个元素的innerHTML,即得到经过HTML编码...

    浅析JavaScript中浏览器的兼容问题

    浏览器兼容性问题是在实际开发中容易忽略而又最重要的一部分。...3)innerContent 老版本的Firefox支持 4)新版本的浏览器两种方式都支持 1 // 老版本浏览器兼容 innerText 和 innerContent 2 if (element.textC

    JsDom 编程小结

    FF(FireFox)不支持InnerText,用textContent代替 2.几乎所有DOM元素都有innerText、innerHTML属性(注意大小写),分别是元素标签内内容的文本表示形式和HTML源代码,这两个属性是可读可写的。 动态创建元素的时候...

    记录几个javascript有关的小细节

    Firefox 支持 innerHTML 属性却不支持 innerText,如果不想用innerHTML 替代,可以用如下代码 由于Firefox不支持document.all,所以考虑兼容的时候获取对象通常用 document.getelementbyid(‘yourid’)....

    js下获取div中的数据的原理分析

    但是只是在IE和OPERA中使用 document.getelementbyid(“ddhdh”).innerTEXT 可以获取到div中的文本数据,不会获取到标签。。。但是只是在IE和OPERA中使用 document.getElementById(“text”).textContent 用于在火狐...

    JS实现HTML标签转义及反转义

    注:火狐不支持innerText,需要使用 textContent 属性,而IE早期版本不支持此属性,为了同时兼容IE及火狐,需要进行判断操作. 因为innerText(textContent)会获取纯文本内容,忽略html节点标签,而innerHTML会显示...

Global site tag (gtag.js) - Google Analytics