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 :

onLoad et ie


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut onLoad et ie
    J'ai un problème qui ne se produit que sur IE. Ma page charge deux fichiers javascript.
    Le A.js contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    window.onload = function () {
        parcours = new Track.Parcours();
    }
    Le B.js contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Track.Parcours = function () {
    }
    Sous les autres navigateurs, je n'ai pas d'erreur mais sous ie (sauf de temps en temps) j'ai une erreur car Track.Parcours est undefined dans mon onload. Vu que je suis sur onload, je pensais que le code s'executait quand l'ensemble des fichiers était chargé.
    Quelle est la solution à mon problème ?
    Par avance merci....

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      function loadMe() {
      var x = window;
      }
      if ( x.addEventListener ) { 
         x.addEventListener( "load", loadMe, false );
      }
      else 
         if ( x.attachEvent ) { 
            x.attachEvent( "onload", loadMe );
      } else 
            if ( x.onLoad ) {
               x.onload = loadMe;
      }
    A la place de toute tes appels onload par loadMe(), a tester.
    Bonne soirée

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut
    je passe bien dans le onload. Que peut m'apporter ton code ?

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    J'ai pas bien compris ton problème?
    tu appelle une fonction qui n'est pas encore chargé dans ta page?
    charge tu bien en premier :
    Le B.js, et ensuite A.js?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <head>
    <script type="text/javascript" src="Le B.js"></script>
    <script type="text/javascript" src="Le A.js"></script>
    </head>
    Pour info le titre de ton topic est onload et ie, le code que je tes fournit et pour la gestion des incompatibilités de la function onload sur IE ancienne version comprise.

    Bonne soirée.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut
    Je vais essayé de réexpliquer mon problème :

    une page htm

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html>
     <head>
      <script language="JavaScript" src="script1.js"></script>
     </head>
     <body >
    Test
     </body>
     </html>

    un script js script1.js :


    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Configuration = function () {
    };
     
    Configuration.prototype = {
     
        /// <summary>
        /// Charge les js 
        /// </summary>
        chargerJS: function () {
            var js = new Array();
            js.push("script2.js");
            this.chargerListeJS(js)
        },
     
        /// <summary>
        /// Charge les js 
        /// </summary>
        /// <param name="jsfiles">tableaux de  fichiers js</param>
        chargerListeJS: function (jsfiles) {
            for (var i in jsfiles) {
                var script = document.createElement("script");
                script.src = jsfiles[i];
                script.async = false;
                script.type = 'text/javascript'
                var head = document.getElementsByTagName("head")[0];
                var s = document.getElementsByTagName('link')[0];
                if (s)
                    s.parentNode.insertBefore(script, s);
                else
                    (head || document.body).appendChild(script);
    		}
        }
    };
     
    // création de la configuration
    var configuration = new Configuration();
    configuration.chargerJS();
     
    window.onload = function() 
    { 
    if (typeof (MaClasse) != 'undefined')
    alert("defini");
    else
    alert("non défini")
    }
    un fichier script2.js chargé par le code précedent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaClasse = function() { }
    sous la plupart des navigateurs, j'ai le message "defini" qui s'affiche mais sous internet explorer j'ai le message "non défini" qui s'affiche.
    Je cherche donc à ce que le message "défini" s'affiche également sous internet explorer

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ah ben oui... Ca n'a pas grand chose à voir avec ton premier message

    Un script ajouté via un script est par défaut chargé de façon asynchrone.
    Bien entendu, l'attribut async permet d'éviter cela, mais à une condition : qu'il soit reconnu par le navigateur, ce qui n'est pas le cas de IE<10 pour lesquels il faut passer par defer !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. priorité des onload avec des iframes
    Par pekka77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/11/2005, 13h22
  2. [C#] OnLoad du formulaire
    Par PoZZyX dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/08/2005, 07h22
  3. surcharge du onload
    Par ruda.tom dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/08/2005, 09h18
  4. [Onload] Lancer une fonction au chargement de la page ??
    Par Kylen dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/06/2005, 18h36
  5. question sur onLoad()
    Par Flobel dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 09/12/2004, 16h50

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