innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别


Posted in Javascript onJune 29, 2007

innerText 属性在 IE 浏览器中可以得到当前元素过滤掉 HTML Tags 之后的文本内容,在某些时候还是比较有用。但类似的非标准属性/方法在其他浏览器中并不一定都得到支持。
类似的像 insertAdjacentElement , insertAdjacentElement , insertAdjacentHTML , insertAdjacentText 等。如果需要使用这些非标准的方法,或者已有的代码大量使用了这些方法的话,就必须为其他浏览器提供对应的 prototype 定义。比如:

var isMinNS5 = (navigator.appName.indexOf("Netscape") >= 0 &&
               parseFloat(navigator.appVersion) >= 5) ? 1 : 0;

if (isMinNS5){
 HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode){
   switch (where){
   case ’beforeBegin’:
     this.parentNode.insertBefore(parsedNode,this)
     break;
   case ’afterBegin’:
     this.insertBefore(parsedNode,this.firstChild);
     break;
   case ’beforeEnd’:
     this.appendChild(parsedNode);
     break;
   case ’afterEnd’:
     if(this.nextSibling){
       this.parentNode.insertBefore(parsedNode,this.nextSibling);
     }
     else{
       this.parentNode.appendChild(parsedNode)
     }
   break;
   }
 }
 HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
   var r = this.ownerDocument.createRange();
   r.setStartBefore(this);
   var parsedHTML = r.createContextualFragment(htmlStr);
   this.appendChild(parsedHTML)
 }
 HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
   var parsedText = document.createTextNode(txtStr)
   this.insertAdjacentElement(where,parsedText)
 }
 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].innerText;
       else if(childS[i].nodeType==3)
         anyString += childS[i].nodeValue;
     }

     return anyString;
   }
 );
}

Javascript 相关文章推荐
js实现的日期操作类DateTime函数代码
Mar 16 Javascript
js使用ajax读博客rss示例
May 06 Javascript
Node.js抓取中文网页乱码问题和解决方法
Feb 10 Javascript
JavaScript中的pow()方法使用详解
Jun 15 Javascript
用Move.js配合创建CSS3动画的入门指引
Jul 22 Javascript
Node.js文件操作方法汇总
Mar 22 Javascript
JS在onclientclick里如何控制onclick的执行
May 30 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
Jan 12 Javascript
JS实现的DIV块来回滚动效果示例
Feb 07 Javascript
JQuery 又谈ajax局部刷新
Nov 27 jQuery
浅谈ECMAScript 中的Array类型
Jun 10 Javascript
javascript实现点击星星小游戏
Dec 24 Javascript
javascript之函数直接量(function(){})()
Jun 29 #Javascript
javascript延时重复执行函数 lLoopRun.js
Jun 29 #Javascript
JavaScript 编程引入命名空间的方法
Jun 29 #Javascript
你需要知道的JavsScript可以做什么?
Jun 29 #Javascript
ECMAScript 基础知识
Jun 29 #Javascript
javascript中的几个运算符
Jun 29 #Javascript
一个加载js文件的小脚本
Jun 28 #Javascript
You might like
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
中国的第一台收音机
2021/03/01 无线电
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
2014/07/24 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python rsa 加密解密
2017/03/20 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Python常见数字运算操作实例小结
2019/03/22 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
使用python+whoosh实现全文检索
2019/12/09 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
Python join()函数原理及使用方法
2020/11/14 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
创业计划书怎样才能打动风投
2014/01/01 职场文书
高中生期末评语大全
2014/01/28 职场文书
赡养老人协议书
2014/04/21 职场文书
找工作求职信
2014/07/07 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
党员志愿者活动方案
2014/08/28 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
导游词之江南周庄
2019/12/06 职场文书
Nginx限流和黑名单配置
2022/05/20 Servers