1. Apabila menggunakan fungsi JSON dalam jQuery dalam mod keserasian IE dan mod keserasian penyemak imbas dengan kernel IE, "JSON undefined" muncul, tetapi bertukar kepada mod kelajuan tinggi penyemak imbas dipaparkan seperti biasa
Penyelesaian:
1. Perkenalkan terus json2.js ke dalam halaman yang anda gunakan (https://github.com/douglascrockford/JSON-js/blob/master/json2.js). tidak diterangkan secara terperinci.
2. Tentukan dalam kaedah js awam halaman
if(typeof JSON == 'undefined'){ $('head').append($("<script type='text/javascript' src='.../json2.js'>")); //此处的位置为该js文件所在路径 }
2. Apabila menggunakan ajax, selalunya perlu menjana elemen halaman secara dinamik dan menggunakan atribut innerHTML pada elemen untuk mengisi HTML halaman. Walau bagaimanapun, apabila didapati bahawa innerHTML elemen jadual diberikan nilai semasa penggunaan, ia adalah baik di bawah Firefox, tetapi ralat masa jalan yang tidak diketahui berlaku dalam mod keserasian IE. Contoh ralat adalah seperti berikut:
Didapati bahawa di bawah IE6-IE9, atribut HTML dalaman bagi jadual elemen berikut, thead, tfoot, tbody, tr, col, colgroup, html, title, style, frameset adalah baca sahaja
Penyelesaian: Panggil kaedah js berikut
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; } }
Kandungan di atas adalah masalah yang disebabkan oleh penggunaan JSON dan table.innerHTML dalam IE6-IE9 yang dikongsi oleh editor saya harap anda menyukainya.