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 相关文章推荐
Ajax 数据请求的简单分析
Apr 05 Javascript
浅析js中的浮点型运算问题
Jan 06 Javascript
使用js获取图片原始尺寸
Dec 03 Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
Nov 10 Javascript
深入理解jquery中extend的实现
Dec 22 Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 Javascript
js实现方块上下左右移动效果
Aug 17 Javascript
ES6学习笔记之map、set与数组、对象的对比
Mar 01 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
JS html事件冒泡和事件捕获操作示例
May 01 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后退一页表单内容保存实现方法
2012/06/17 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
Python中字符串的常见操作技巧总结
2016/07/28 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
Python帮你识破双11的套路
2019/11/11 Python
python实现在线翻译功能
2020/03/03 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
玲玲的画教学反思
2014/02/04 职场文书
小学生元旦广播稿
2014/02/21 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
预备党员自我评价范文
2015/03/04 职场文书
董存瑞观后感
2015/06/11 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python