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 FormatNumber函数实现方法
Dec 30 Javascript
javascript 学习笔记(一)DOM基本操作
Apr 08 Javascript
Jquery网页出现的乱码问题的三种解决方法
Jun 30 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
jquery实现的用户注册表单提示操作效果代码分享
Aug 28 Javascript
jQuery处理XML文件的几种方法
Jun 14 Javascript
vue编译打包本地查看index文件的方法
Feb 23 Javascript
基于Angularjs-router动态改变Title值的问题
Aug 30 Javascript
解决Layui中templet中a的onclick参数传递的问题
Sep 20 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
Mar 08 Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 Javascript
vue设置全局访问接口API地址操作
Aug 14 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
Session的工作方式
2006/10/09 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
jquery isType() 类型判断代码
2011/02/14 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
python实现Windows电脑定时关机
2018/06/20 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
杭州时比特电子有限公司SQL
2013/08/22 面试题
Shell编程面试题
2016/05/29 面试题
餐饮管理自我介绍信
2014/01/15 职场文书
小学防溺水制度
2014/01/29 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
党员评议思想汇报
2014/10/08 职场文书
安全教育第一课观后感
2015/06/17 职场文书
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android