Heim  >  Artikel  >  Web-Frontend  >  Probleme, die durch die Verwendung von JSON und table.innerHTML in IE6-IE9_javascript-Kenntnissen verursacht werden

Probleme, die durch die Verwendung von JSON und table.innerHTML in IE6-IE9_javascript-Kenntnissen verursacht werden

WBOY
WBOYOriginal
2016-05-16 15:24:121047Durchsuche

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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn