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 :

javascript compatibilité sous I.E. 7.0


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut javascript compatibilité sous I.E. 7.0
    Bonjour à tous

    Voici le problème auquel je suis confronté: Je suis parvenu à mettre en place un script qui affiche sur mon site le titre en cours diffusé par une webradio. S'il fonctionne sans problème sous Firefox, ce n'est malheureusement pas le cas sous I.E. 7.0: aucun souci lors du chargement de la page, le titre s'affiche correctement, mais il ne se met plus à jour ensuite, même en actualisant la page. Auriez-vous une idée du problème ? À toutes fins utiles, voici le script en question:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <script type="text/javascript">
    <!--
    var obj = null;
    var FILENAME = "titreencours.php";
    function Chargeurl (url) {
    if(window.XMLHttpRequest)
    obj = new XMLHttpRequest();
    else if(window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP");
    else obj = null;
     
    if (obj== null) return;
     
    obj.open("GET", url, true);
    obj.onreadystatechange = function () {
    if(obj.readyState == 4 ) {
    var req = obj.responseText;
    if(document.getElementById)
    {
    document.getElementById("titre_d").innerHTML = req;
    }
    else if(document.all)
    {
    document.all["titre_d"].innerHTML = req;
    }
     
    }};
    obj.send(null);
    }
     
    window.setInterval("Chargeurl(FILENAME)",2000);
    // -->
    </script>
    Merci d'avance

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    var obj = null;
    essaie de le déclarer en local de la méthode (supprime la ligne)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Merci Mathieu2000. Je viens de faire un essai, mais ça ne fonctionne toujours pas.

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    erreurs?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Aucune erreur, j'aurais dû le préciser. Et ça fonctionne toujours normalement sous Firefox.

  6. #6
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    essaie de mettre le contenu de FILENAME directement dans ton open, pour ne pas avoir a passer le paramètre dans le setInterval

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    essaie de mettre le contenu de FILENAME directement dans ton open, pour ne pas avoir a passer le paramètre dans le setInterval
    Merci pour l'info En revanche, je suis loin d'être un pro au niveau du code à modifier. Peux-tu me dire ce que le dois changer précisément ?

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    une remarque en passant : IE reconnait la méthode document.getElementById(), donc tester document.all est inutile (tu peux donc supprimer ce test et le code qu'il contient).

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Auteur Voir le message
    une remarque en passant : IE reconnait la méthode document.getElementById(), donc tester document.all est inutile (tu peux donc supprimer ce test et le code qu'il contient).
    Merci pour l'info. J'ai tenté de modifier, mais je me demande si je n'ai pas supprimé du code en plus car le titre en cours ne s'affiche plus. Pour info, voilà ce que j'ai retiré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    {
    document.getElementById("titre_d").innerHTML = req;
    }
    else if(document.all)
    {
    document.all["titre_d"].innerHTML = req;
    }
     
    }};

  10. #10
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Je pensais à ca:

    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
     
    function Chargeurl () {
    if(window.XMLHttpRequest)
    var obj = new XMLHttpRequest();
    else if(window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP");
    else obj = null;
     
    if (obj== null) return;
     
    obj.open("GET", "titreencours.php", true);
    ...
     
     
    }
     
    window.setInterval("Chargeurl()",2000);

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    J'ai modifié selon ta suggestion, mais ça n'a hélas rien changé. Merci quand même pour l'aide

  12. #12
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    Citation Envoyé par Discologue Voir le message
    Merci pour l'info. J'ai tenté de modifier, mais je me demande si je n'ai pas supprimé du code en plus car le titre en cours ne s'affiche plus. Pour info, voilà ce que j'ai retiré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    {
    document.getElementById("titre_d").innerHTML = req;
    }
    else if(document.all)
    {
    document.all["titre_d"].innerHTML = req;
    }
     
    }};
    euh non je ne pensais pas à ça, là ton code n'a pas de sens (un else sans if).
    Je pensais à remplacer cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(document.getElementById)
    {
    document.getElementById("titre_d").innerHTML = req;
    }
    else if(document.all)
    {
    document.all["titre_d"].innerHTML = req;
    }
    par ceci tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("titre_d").innerHTML = req;

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Je comprends mieux, merci
    Désormais, j'ai donc le code suivant. Le titre ne s'actualise toujours pas sous I.E., mais j'avais bien compris que c'était pour supprimer un test inutile:

    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
    24
    25
    26
    27
     
    <script type="text/javascript">
    <!--
    var obj = null;
    var FILENAME = "titreencours.php";
    function Chargeurl (url) {
    if(window.XMLHttpRequest)
    obj = new XMLHttpRequest();
    else if(window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP");
    else obj = null;
     
    if (obj== null) return;
     
    obj.open("GET", url, true);
    obj.onreadystatechange = function () {
          if(obj.readyState == 4 ) {
    var req = obj.responseText;
     
    document.getElementById("titre_d").innerHTML = req;
     
    }};
    obj.send(null);
    }
     
    window.setInterval("Chargeurl(FILENAME)",2000);
    // -->
    </script>

  14. #14
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    tape sur ie directement l'url de titreencours.php pour voir s'il y a des réponses

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Matthieu2000 Voir le message
    tape sur ie directement l'url de titreencours.php pour voir s'il y a des réponses
    Pas de problème, titreencours.php affiche le morceau diffusé, que ce soit sous Firefox ou I.E.

Discussions similaires

  1. javascript et compatibilité sous firefox3
    Par mc_toma dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 30/12/2008, 13h24
  2. [AJAX] Problème de javascript / compatibilité
    Par Pepe67 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 30/06/2006, 12h30
  3. Erreur javascript seulement sous IE
    Par deudtens dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/06/2006, 12h48
  4. Les sessions en javascript; XML sous FF; Aide pour un projet
    Par FremyCompany dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/05/2006, 17h59
  5. [regExp] passe en php mais pas javascript seulement sous ie
    Par zax-tfh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/09/2005, 14h34

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