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 相关文章推荐
JavaScript 使用技巧精萃(.net html
Apr 25 Javascript
jQuery 1.5最新版本的改进细节分析
Jan 19 Javascript
Jquery带搜索框的下拉菜单
May 06 Javascript
使用JavaScript的AngularJS库编写hello world的方法
Jun 23 Javascript
JavaScript判断变量是否为数组的方法(Array)
Feb 24 Javascript
Highcharts入门之简介
Aug 02 Javascript
vue.js初学入门教程(1)
Nov 03 Javascript
input框中的name和id的区别
Nov 16 Javascript
原生JS实现层叠轮播图
May 17 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
jquery登录的异步验证操作示例
May 09 jQuery
JavaScript严格模式不支持八进制的问题讲解
Nov 07 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语言流程控制中的主动与被动
2012/11/05 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
js表单验证实例讲解
2016/03/31 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
写给学生的新学期寄语
2014/01/18 职场文书
婚纱店策划方案
2014/05/22 职场文书
医药销售自荐书
2014/05/29 职场文书
购房委托书范本
2014/09/18 职场文书
奖励通知
2015/04/22 职场文书
金榜题名主持词
2015/07/02 职场文书
小学语文国培研修日志
2015/11/13 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
车辆挂靠协议书
2016/03/23 职场文书