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 Cookie显示用户上次访问的时间和次数
Dec 08 Javascript
jquery $.each() 使用小探
Aug 23 Javascript
js css 实现遮罩层覆盖其他页面元素附图
Sep 22 Javascript
jquery简单插件制作(fn.extend)完整实例
May 24 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
JS严格模式知识点总结
Feb 27 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
Aug 02 Javascript
微信小程序实现复选框效果
Dec 28 Javascript
layer扩展打开/关闭动画的方法
Sep 23 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
Jul 11 Javascript
如何利用node转发请求详解
Sep 17 Javascript
原生JS封装vue Tab切换效果
Apr 28 Vue.js
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
检测png图片是否完整的php代码
2010/09/06 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
一个js实现的所谓的滑动门
2007/05/23 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
Python中Yield的基本用法
2020/10/18 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
门诊挂号室室长岗位职责
2013/11/27 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
本溪关门山导游词
2015/02/09 职场文书
品质保证书格式
2015/02/28 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL