textContent在Firefox下与innerText等效的属性


Posted in Javascript onMay 12, 2007

在IE和Opear下,DOM对象支持innerText属性,可以很方便的去除HTML标签。
但在Firefox不支持该属性,好在FF下的DOM对象支持textContent,该属性与innerText等效。

演示实例:
<p id="TestObj">Hi,I'm <strong>cnlei</strong>.Welcome to my homepage:<a href="http://www.cnlei.com">http://www.cnlei.com</a>.</p>
<script type="text/javascript">
function getInnerText(obj){
  return document.all?obj.innerText:obj.textContent;
}
var str = getInnerText(document.getElementById("TestObj"));
alert(str);
</script>

为Firefox下的DOM对象增加innerText属性:
<script type="text/javascript">
var lBrowser = {};
lBrowser.agt = navigator.userAgent.toLowerCase();
lBrowser.isW3C = document.getElementById ? true:false;
lBrowser.isIE = ((lBrowser.agt.indexOf("msie") != -1) && (lBrowser.agt.indexOf("opera") == -1) && (lBrowser.agt.indexOf("omniweb") == -1));
lBrowser.isNS6 = lBrowser.isW3C && (navigator.appName=="Netscape") ;
lBrowser.isOpera = lBrowser.agt.indexOf("opera") != -1;
lBrowser.isGecko = lBrowser.agt.indexOf("gecko") != -1;
lBrowser.ieTrueBody =function (){
  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
};

//为Firefox下的DOM对象增加innerText属性
if(lBrowser.isNS6){ //firefox innerText define
 HTMLElement.prototype.__defineGetter__( "innerText", 
 function(){ 
 return this.textContent; 
 } 
 ); 
 HTMLElement.prototype.__defineSetter__( "innerText", 
 function(sText){ 
 this.textContent=sText; 
 } 
 ); 
}

alert(lBrowser.isNS6);
</script>

附录 DOM Reference:
Firefox DOM参考:http://www.mozilla.org/docs/dom/domref/dom_shortTOC.html
IE DOM参考:
http://msdn2.microsoft.com/en-us/library/ms533050.aspx 

Javascript 相关文章推荐
学习ExtJS TextField常用方法
Oct 07 Javascript
javascript options属性集合操作代码
Dec 28 Javascript
js导出格式化的excel 实例方法
Jul 17 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
Oct 24 Javascript
jquery中EasyUI使用技巧小结
Feb 10 Javascript
JavaScript常用脚本汇总(三)
Mar 04 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
Feb 15 Javascript
JS原型、原型链深入理解
Feb 27 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
JS异步错误捕获的一些事小结
Apr 26 Javascript
js实现数字滚动特效
Dec 16 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
Aug 14 Javascript
关于__defineGetter__ 和__defineSetter__的说明
May 12 #Javascript
JavaScript Archive Network 集合
May 12 #Javascript
(仅IE下有效)关于checkbox 三态
May 12 #Javascript
弹出广告特效代码(一个IP只弹出一次)
May 11 #Javascript
模拟用户操作Input元素,不会触发相应事件
May 11 #Javascript
网上抓的一个特效
May 11 #Javascript
用javascript实现分割提取页面所需内容
May 09 #Javascript
You might like
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
PHP中Session的概念
2006/10/09 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
php DES加密算法实例分析
2019/09/18 PHP
extjs两个tbar问题探讨
2013/08/08 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
Python3 tkinter 实现文件读取及保存功能
2019/09/12 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
大学生收银员求职信分享
2014/01/02 职场文书
工作决心书范文
2014/03/11 职场文书
贷款担保书范文
2014/05/13 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript