IE6-IE9使用JSON、table.innerHTML所引发的问题
作者:bea
一、在IE兼容模式中以及各具有IE内核的浏览器兼容模式中使用 jQuery 中的JSON函数时出现“JSON未定义” 而切换到浏览器高速模式则正常显示 解决方案 : 1.直接在使用的页面中引入json2.js (https://github.com/douglascrockford/JSON-js/blob/master/json2.js)引入方法不再赘述。 2.在页面的公共js方法里判断 if(typeof JSON == 'undefined'){ $(
一、在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下,下列元素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所引发的问题,希望大家喜欢。
有用 | 无用
解决方案 :
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下,下列元素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所引发的问题,希望大家喜欢。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JS实现的倒计时效果实例(2则实例)
- JavaScript对象数组排序函数及六个用法
- JavaScript中的函数(二)
- 分享JavaScript与Java中MD5使用两个例子
- js实现正则匹配中文标点符号的方法
- jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
- node.js入门实例helloworld详解
- 基于JavaScript代码实现pc与手机之间的跳转
- AngularJS 日期格式化详解
- 详解JavaScript时间格式化
- FullCalendar日历插件应用之数据展现(一)
- js实现图片无缝滚动
- 使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
- js判断文本框输入的内容是否为数字
- javascript新闻跑马灯实例代码
- javascript动态添加checkbox复选框的方法
- js仿微博实现统计字符和本地存储功能
- Bootstrap轮播加上css3动画,炫酷到底!
- 对象题目的一个坑 理解Javascript对象