Maison >interface Web >js tutoriel >Problèmes causés par l'utilisation de JSON et table.innerHTML dans les compétences IE6-IE9_javascript

Problèmes causés par l'utilisation de JSON et table.innerHTML dans les compétences IE6-IE9_javascript

WBOY
WBOYoriginal
2016-05-16 15:24:121099parcourir

1. Lors de l'utilisation de la fonction JSON dans jQuery en mode de compatibilité IE et en mode de compatibilité du navigateur avec le noyau IE, "JSON non défini" apparaît, mais le passage au mode haut débit du navigateur s'affiche normalement

Solution :

1. Introduisez directement json2.js dans la page que vous utilisez (https://github.com/douglascrockford/JSON-js/blob/master/json2.js). ne sera pas décrit en détail.

2. Déterminer dans la méthode public js de la page

  if(typeof JSON == 'undefined'){ 
  $('head').append($("<script type='text/javascript' src='.../json2.js'>")); //此处的位置为该js文件所在路径
  }

2. Lors de l'utilisation d'ajax, il est souvent nécessaire de générer dynamiquement des éléments de page et d'utiliser l'attribut innerHTML sur l'élément pour remplir la page HTML. Cependant, lorsqu'il s'avère qu'une valeur est attribuée au innerHTML de l'élément table lors de l'utilisation, tout va bien sous Firefox, mais une erreur d'exécution inconnue se produit en mode de compatibilité IE. Des exemples d'erreurs sont les suivants :


Il a été constaté que sous IE6-IE9, les attributs innerHTML des éléments suivants table, thead, tfoot, tbody, tr, col, colgroup, html, title, style, frameset sont en lecture seule

Solution : Appelez la méthode js suivante

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;
  }
}

Le contenu ci-dessus concerne les problèmes causés par l'utilisation de JSON et table.innerHTML dans IE6-IE9 partagés par l'éditeur. J'espère qu'il vous plaira.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn