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 相关文章推荐
YUI的Tab切换实现代码
Apr 11 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
Jul 26 Javascript
JavaScript中OnLoad几种使用方法
Dec 15 Javascript
javascript 中的 delete及delete运算符
Nov 15 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 Javascript
jQuery中的通配符选择器使用总结
May 30 Javascript
深入理解requestAnimationFrame的动画循环
Sep 20 Javascript
React创建组件的三种方式及其区别
Jan 12 Javascript
基于Vue.js 2.0实现百度搜索框效果
Dec 28 Javascript
jQuery中each遍历的三种方法实例分析
Sep 07 jQuery
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
Aug 27 Javascript
Js on及addEventListener原理用法区别解析
Jul 11 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
php四种基础算法代码实例
2013/10/29 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
php跨域调用json的例子
2013/11/13 Javascript
js单词形式的运算符
2014/05/06 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
深入理解Python中变量赋值的问题
2017/01/12 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
客服实习的个人自我鉴定
2013/10/20 职场文书
自荐信写法介绍
2014/01/25 职场文书
冰淇淋开店创业计划书
2014/02/01 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
国企干部对照检查材料
2014/08/22 职场文书
在职员工证明书
2014/09/19 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
推普标语口号大全
2015/12/26 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS