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 XMLHttpRequest对象全面剖析
Apr 24 Javascript
省市区三级联动下拉框菜单javascript版
Aug 11 Javascript
jQuery实现动态添加和删除一个div
Aug 12 Javascript
jquery+css实现的红色线条横向二级菜单效果
Aug 22 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
Jun 20 Javascript
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
Oct 29 Javascript
vue与bootstrap实现简单用户信息添加删除功能
Feb 15 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
Mar 31 Javascript
详解vue-cli3 中跨域解决方案
Apr 10 Javascript
小程序实现新用户判断并跳转激活的方法
May 20 Javascript
layui 表格操作列按钮动态显示的实现方法
Sep 06 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
摘自织梦CMS中的图片处理类
2015/08/08 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python缩进和冒号详解
2016/06/01 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
Python进程池Pool应用实例分析
2019/11/27 Python
python字符串下标与切片及使用方法
2020/02/13 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
python GUI计算器的实现
2020/10/09 Python
override和overload的区别
2016/03/09 面试题
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
消防安全责任书范本
2014/04/15 职场文书
村级换届选举方案
2014/05/10 职场文书
奠基仪式策划方案
2014/05/15 职场文书
护理见习报告范文
2014/11/03 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python