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 相关文章推荐
延时重复执行函数 lLoopRun.js
May 08 Javascript
JavaScript 组件之旅(二)编码实现和算法
Oct 28 Javascript
基于JQuery 的消息提示框效果代码
Jul 31 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
Sep 16 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
Apr 12 Javascript
Webwork 实现文件上传下载代码详解
Feb 02 Javascript
浅谈Sublime Text 3运行JavaScript控制台
Jun 06 Javascript
原生JS实现网络彩票投注效果
Sep 25 Javascript
vue2.0 资源文件assets和static的区别详解
Apr 08 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
小程序tab页无法传递参数的方法
Aug 03 Javascript
js实现复制粘贴的两种方法
Dec 04 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
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
PHP中foreach循环中使用引用要注意的地方
2011/01/02 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
PHP对象相关知识总结
2017/04/09 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP中16个高危函数整理
2019/09/19 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
用javascript操作xml
2006/11/04 Javascript
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
解读! Python在人工智能中的作用
2017/11/14 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
大学军训感言300字
2014/03/09 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书