Je suis en train de développer un site web AJAX. J'ai rencontré des différences entre le JavaScript standard et le dialecte JavaScript de Microsoft.
Par exemple, .textContent (standard) et .text (microsoft). Je pourrais créer deux fichiers, l'un pour les navigateurs standard et l'autre pour les navigateurs microsoft, mais si je fais un changement, je dois le faire deux fois, ce n'est donc pas une option idéale. Mettre des instructions if à chaque fois que je rencontre un .textContent ne semble pas non plus être une solution optimale.
J'ai donc réfléchi à une solution basée sur un script, et j'ai trouvé quelque chose comme ceci :
function translate_to_msie_dialect(){
var s = document.getElementsByTagName("script");
var l = s.length;
var i;
for ( i = 0 ; i < l ; i ++ ) {
var src = s[i].text;
s[i].text = src.replace(/.textContent/g, ".text");
}
}
J'ai testé ce code sur Internet Explorer version 8, et il semble que faire son travail. (la traduction de ie à standard ne semble pas fonctionner, les navigateurs standards semblent exécuter le code non modifié à la place)
Le problème est que cela ne fonctionne que pour les scripts en ligne, et pas pour le fichier source js. scripts. Est-il possible de faire cette conversion scripts pour les fichiers javascript côté client ?
Je pourrais faire une vérification sur l'agent utilisateur (côté serveur), mais je préférerais faire mais je préférerais vérifier le dialecte lui-même, car certains navigateurs supportent une fonction et s'ils s'identifient en tant que ie, ils pourraient se retrouver dans un dialecte qu'ils ne comprennent pas.