IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Compatibilité script IE et Firefox


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Points : 53
    Points
    53
    Par défaut Compatibilité script IE et Firefox
    Bonjour,

    J'ai un problème de compatibilité entre IE et les autres navigateurs (Firefox, Google Chrome, ...).

    Je lance donc une fonction dans le OnLoad du body de ma page html comme ceci :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="transform(loadXML(nom), loadXML('index.xsl'), 'transform');">

    La fonction LoadXML charge le fichier XML ou XSL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function loadXML(url) 
          { 
            var xmlDoc; 
              // Internet Explorer
              if (window.ActiveXObject){ 
                  xmlDoc = new ActiveXObject('Msxml2.XMLDOM'); 
                  xmlDoc.async = false; 
                  xmlDoc.load(url); 
              } 
     
              //Firefox
    		  else if (window.XMLHttpRequest) { 
                xmlDoc = new XMLHttpRequest(); 
                xmlDoc.overrideMimeType('text/xml'); 
                xmlDoc.open('GET', url, false); 
                xmlDoc.send(null); 
    			//La fonction lit bien le fichier XML
    			//alert(xmlDoc.responseText); 
              } 
            return xmlDoc; 
          }
    La fonction marche bien puisque dans mon alert je récupère le contenu de mes fichiers XML et XSL.

    Je suppose donc que l'erreur vient de ma fonction de transformation qui est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     function transform(xml, xsl, id) 
          { 
     
              // FireFox
              if (window.XSLTProcessor) 
              { 
    		  //ERREUR ICI ?
                var fragment; 
                var xsltProcessor = new XSLTProcessor();              
                xsltProcessor.importStylesheet(xsl); 
                fragment = xsltProcessor.transformToFragment(xml, document); 
                var target = document.getElementById(id); 
                target.appendChild(fragment); 
                document.appendChild(target); 
    		  //ERREUR ICI ?
              }
    			// Internet Explorer
    			else if (window.ActiveXObject) { 
                var target = document.getElementById(id); 
                target.innerHTML = xml.transformNode(xsl); 
              }  
          }
    Comme je l'ai précisé dans le titre, ça fonctionne sous IE mais pas sous les autres navigateurs.

    Ma page HTML dois recevoir du XML mis en forme par le XSL.

    Des idées sur l'erreur ? Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Points : 53
    Points
    53
    Par défaut
    J'ai réussi à faire tourner tout ça sous IE, les modifications :

    Je déclare dans mon <head> en javascript des variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var URLxml = nom;
             var xml = loadXML(URLxml);
             var xsl = loadXML('index.xsl');
             var xsl2 = loadXML('index_pareto.xsl');
             var xsl3 = loadXML('index_pareto_machine.xsl');
    Et mon body ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <body onload="transform(xml, xsl, 'transform');transform(xml, xsl2, 'pareto'),transform(xml, xsl3, 'pareto2')">
    Et étrangement de cette façon ça marche :/ Si vous avez une méthode différente pour charger et transformer du xml par xsl je suis preneur !
    Ou même m'expliquer pourquoi ça marche de cette façon mais pas de l'autre sous firefox.

Discussions similaires

  1. Compatibilité script IE/NETSC/FIREFOX
    Par tomguiss dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/01/2009, 21h37
  2. [MySQL] Mon script marche sous Firefox et pas sous IE
    Par fanshak dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/12/2006, 23h56
  3. Problème de compatibilité entre IE et FireFox
    Par paradeofphp dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/09/2006, 14h39
  4. Script incompatible avec Firefox, le retour !
    Par Raylemon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/05/2006, 22h26
  5. Script menu contextuel firefox
    Par nek_kro_kvlt dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/01/2006, 12h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo