IE6-IE9使用JSON、table.innerHTML所引发的问题


Posted in Javascript onDecember 22, 2015

 一、在IE兼容模式中以及各具有IE内核的浏览器兼容模式中使用  jQuery 中的JSON函数时出现“JSON未定义”  而切换到浏览器高速模式则正常显示

解决方案 :

1.直接在使用的页面中引入json2.js (https://github.com/douglascrockford/JSON-js/blob/master/json2.js)引入方法不再赘述。

2.在页面的公共js方法里判断

if(typeof JSON == 'undefined'){ 

$('head').append($("<script type='text/javascript' src='.../json2.js'>")); //此处的位置为该js文件所在路径

}

二、使用ajax时,经常需要动态生成页面元素,而使用element上属性innerHTML填充页面HTML。但是在使用中发现 table元素的innerHTML时赋值时,在firefox下是好的,但在ie兼容模式中出现未知的运行时错误。错误示例如下:

 IE6-IE9使用JSON、table.innerHTML所引发的问题

发现是在IE6-IE9下,下列元素table,thead,tfoot,tbody,tr,col,colgroup,html,title,style,frameset的innerHTML属性是只读的

解决方法:调用下面js方法

function setTableInnerHTML(table, html) {//table 为table对象,html为生成的html字符串
  if (navigator && navigator.userAgent.match(/msie/i)) {
    var temp = table.ownerDocument.createElement('div');
    temp.innerHTML = '<table>' + html + '</table>';//注意此处传进来的html变量包含“<tbody></tbody>”标签  如果HTML变量中没有 则为 '<table><tbody>' + html + '</tbody></table>'
    table.replaceChild(temp.firstChild.firstChild, table.tBodies[0]);//用生成的div中table的tbody替换原table中的tbody
  } else {
    table.innerHTML = html;
  }
}

以上内容是小编给大家分享的IE6-IE9使用JSON、table.innerHTML所引发的问题,希望大家喜欢。

Javascript 相关文章推荐
JavaScript Perfection kill 测试及答案
Mar 23 Javascript
IE之动态添加DOM节点触发window.resize事件
Jul 27 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
JS如何判断移动端访问设备并解析对应CSS
Nov 27 Javascript
Javascript改变CSS样式(局部和全局)
Dec 18 Javascript
跟我学习javascript的Date对象
Nov 19 Javascript
js图片切换具体实现代码
Oct 13 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
Angularjs为ng-click事件传递参数
Jun 15 Javascript
JS图片预加载插件详解
Jun 21 Javascript
vue 的点击事件获取当前点击的元素方法
Sep 15 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 Javascript
JavaScript+CSS无限极分类效果完整实现方法
Dec 22 #Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
Dec 22 #Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 #Javascript
js实现C#的StringBuilder效果完整实例
Dec 22 #Javascript
JavaScript判断对象是否为数组
Dec 22 #Javascript
javascript中类的定义方式详解(四种方式)
Dec 22 #Javascript
jquery获取select选中值的方法分析
Dec 22 #Javascript
You might like
一些php技巧与注意事项分析
2011/02/03 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
php创建、获取cookie及基础要点分析
2015/01/26 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
javascript的事件描述
2006/09/08 Javascript
js玩一玩WSH吧
2007/02/23 Javascript
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
Python基础教程之异常详解
2019/01/10 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
linux比较文件内容的命令是什么
2013/03/04 面试题
车间主任岗位职责
2014/03/16 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js
nginx之queue的具体使用
2022/06/28 Servers