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