源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-07-26 02:25 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:IE6-IE9使用JSON、table.innerHTML所引发的问题
 一、在IE兼容模式中以及各具有IE内核的浏览器兼容模式中使用  jQuery 中的JSON函数时出现“JSON未定义”  而切换到浏览器高速模式则正常显示 [b]解决方案 : [/b] 1.直接在使用的页面中引入json2.js ([url=https://github.com/douglascrockford/JSON-js/blob/master/json2.js]https://github.com/douglascrockford/JSON-js/blob/master/json2.js[/url])引入方法不再赘述。 2.在页面的公共js方法里判断
  if(typeof JSON == 'undefined'){ 
  $('head').append($("<script type='text/javascript' src='.../json2.js'>")); //此处的位置为该js文件所在路径
  }
二、使用ajax时,经常需要动态生成页面元素,而使用element上属性innerHTML填充页面HTML。但是在使用中发现 table元素的innerHTML时赋值时,在firefox下是好的,但在ie兼容模式中出现未知的运行时错误。错误示例如下:  [img]http://files.jb51.net/file_images/article/201512/20151222140850179.png?201511221497[/img] 发现是在IE6-IE9下,下列元素table,thead,tfoot,tbody,tr,col,colgroup,html,title,style,frameset的innerHTML属性是只读的 [b]解决方法:调用下面js方法 [/b]
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所引发的问题,希望大家喜欢。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部