Heim >Web-Frontend >js-Tutorial >Probleme, die durch die Verwendung von JSON und table.innerHTML in IE6-IE9_javascript-Kenntnissen verursacht werden
1. Wenn Sie die JSON-Funktion in jQuery im IE-Kompatibilitätsmodus und im Browser-Kompatibilitätsmodus mit dem IE-Kernel verwenden, wird „JSON undefiniert“ angezeigt, aber der Wechsel in den Browser-Hochgeschwindigkeitsmodus wird normal angezeigt
Lösung:
1. Führen Sie json2.js direkt in die von Ihnen verwendete Seite ein (https://github.com/douglascrockford/JSON-js/blob/master/json2.js). nicht im Detail beschrieben werden.
2. Bestimmen Sie in der öffentlichen js-Methode der Seite
if(typeof JSON == 'undefined'){ $('head').append($("<script type='text/javascript' src='.../json2.js'>")); //此处的位置为该js文件所在路径 }
2. Bei der Verwendung von Ajax ist es häufig erforderlich, Seitenelemente dynamisch zu generieren und das innerHTML-Attribut für das Element zu verwenden, um den Seiten-HTML zu füllen. Wenn jedoch festgestellt wird, dass dem innerHTML des Tabellenelements während der Verwendung ein Wert zugewiesen wird, ist dies unter Firefox in Ordnung, im IE-Kompatibilitätsmodus tritt jedoch ein unbekannter Laufzeitfehler auf. Beispiele für Fehler sind:
Es wurde festgestellt, dass unter IE6-IE9 die innerHTML-Attribute der folgenden Elemente table, thead, tfoot, tbody, tr, col, colgroup, html, title, style, frameset schreibgeschützt sind
Lösung: Rufen Sie die folgende js-Methode auf
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; } }
Bei dem oben genannten Inhalt handelt es sich um die Probleme, die durch die Verwendung von JSON und table.innerHTML in IE6-IE9 verursacht werden. Ich hoffe, es gefällt Ihnen.