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 相关文章推荐
js改变鼠标的形状和样式的方法
Mar 31 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
Dec 29 Javascript
iframe跨域通信封装详解
Aug 11 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
详解Webwork中Action 调用的方法
Feb 02 Javascript
基于jquery实现最简单的选项卡切换效果
May 08 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
Feb 19 Javascript
微信小程序实现图片懒加载的示例代码
Dec 13 Javascript
解决iview打包时UglifyJs报错的问题
Mar 07 Javascript
JS加密插件CryptoJS实现的Base64加密示例
Aug 16 Javascript
js实现漂亮的星空背景
Nov 01 Javascript
JS前端监控采集用户行为的N种姿势
Jul 23 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
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
python如何将图片转换为字符图片
2020/08/19 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
餐饮采购员岗位职责
2014/03/15 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
先进工作者事迹材料
2014/12/23 职场文书
交通事故起诉书
2015/05/19 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers