DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> IE6-IE9使用JSON、table.innerHTML所引發的問題
IE6-IE9使用JSON、table.innerHTML所引發的問題
編輯:關於JavaScript     

 一、在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所引發的問題,希望大家喜歡。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved