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 :

[iframe] [javascript] executer script quand iframe chargé


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut [iframe] [javascript] executer script quand iframe chargé
    Bonjour,

    Je développe actuellement une appli web classique et j'ai le problème suivant :

    J'ai une page htlml "accueil.html" qui contient un iframe.
    Sur l'événement "onLoad" de la balise <body> de accueil.html j'appelle une fonction javascript qui fait des modifs dans mon iframe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frames['monIframe'].document.monFormulaire.maZonedeTexte.value="OK"
    Mon problème est que lorsque la fonction javascript est appelé, l'iframe n'a pas toujours eu le temps de se charger complétement, j'ai donc une erreur du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    frames['monIframe'].document.monFormulaire.maZonedeTexte is null or not an object
    Comment tester que mon Iframe est bien chargé avant d'executer le script javascrit sachent que :
    le script doit obligatoirement être executé a partir de ma page "accueil.html" ?

  2. #2
    Membre confirmé Avatar de Capt. Flame
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Tu dois utiliser le "onreadystatechange" de ton IFrame...

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('myIframe').onreadystatechange = function(){if(this.readystate == 'complete') alert('Mon action')}

  3. #3
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Désolé mais ca n'a pas l'air de fonctionner.
    l'alert n'apparait dans aucun cas

  4. #4
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par Capt. Flame
    Tu dois utiliser le "onreadystatechange" de ton IFrame...
    Pourquoi pas simplement le onload?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('myIframe').onload = function(){alert('Mon action')}

  5. #5
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Ca ne fonctionne pas non plus mais je crois savoir pourquoi.

    Lorsque la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('myIframe').onload = function(){alert('Mon action')}
    est executee, l'iframe est peut être déjà ouvert et donc le onLoad ne peut pas se produire une 2ème fois.

    Bon comme je l'ai précisé dans le premier post :

    le script doit obligatoirement être executé a partir de ma page "accueil.html"
    car mon iframe est présent dans d'autres pages html qui ne nécesittent pas l'execution du script. Mais je crois que je vais quand même faire comme ca en testant le nom de ma page html parent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (parent.title="accueil") {
       //appel à ma fonction javascript
    }
    Je vous tiens au courant. Merci de votre aide

  6. #6
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Non pardon je rectifie,

    Ma fonction javascript doit s'executer à l'ouverture de ma page accueil.html donc sur l'événement onLoad

  7. #7
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Excusez moi pour l'ambiguïté de mon problème.

    En fait je voulais modifier des zones "hidden" de mon iframe présentes dans un formulaire puis executer ce formulaire depuis la page parente accueil.html. Tout ca dans le but de changer la page présente dans moniframe

    En fait, j'ai mis le formulaire ainsi que ses champs hidden dans la page accueil.html et dans e formulaire j'ai précisé target="monIframe".

    Merci tout de même pour votre aide. Ciao

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. executer function dans iframe
    Par bailamos dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/12/2007, 12h45
  2. javascript, asp:table et iframe
    Par Lyche dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/11/2007, 11h24
  3. [ASP + AJAX + JAVASCRIPT] Execution de script javascript
    Par dragonfly dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/04/2007, 14h29
  4. Réponses: 1
    Dernier message: 06/12/2005, 20h44
  5. [HTML/JAVASCRIPT]Sortir d'une iframe
    Par tidou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/01/2005, 15h26

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