Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/06/2011, 23h42   #1
Candidat au titre de Membre du Club
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : Arts - Culture

Informations forums :
Inscription : avril 2011
Messages : 44
Points : 10
Points : 10
Par défaut Exécution d'un javascript après affectation dynamique de source d'iframe

Dans ma page principale, je déclare un iframe avec une source vide par
<iframe id="monId" src="" ...> .
J'affecte une valeur à la source dynamiquement à un moment donné.

Je voudrais faire en sorte qu'àprès le chargement de l'iframe avec sa nouvelle source, un script javascript s'exécute dans ma page principale (après que la page iframe soit entièrement chargée).
Est-ce possible ?
Merci à celui qui me résoudra ce problème...
PatSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 09h25   #2
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
Dans ta page iframe, il suffit d'appeler une fonction JS présente sur ta page principale, en précédant le nom par "parent."
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 11h13   #3
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
ce qui ne sera possible (sur le onload de la frame) que si la page dynamique se trouve sur le même serveur...
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 12h34   #4
Candidat au titre de Membre du Club
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : Arts - Culture

Informations forums :
Inscription : avril 2011
Messages : 44
Points : 10
Points : 10
Je veux éviter de mettre un quelconque code dans l'iframe (histoire de le rendre indépendant car utilisé ailleurs dans d'autres serveurs) et faire en sorte de mettre du code uniquement dans ma page principale...
PatSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 18h25   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 939
Points : 4 767
Points : 4 767
Citation:
Envoyé par javatwister Voir le message
ce qui ne sera possible (sur le onload de la frame) que si la page dynamique se trouve sur le même serveur...
Citation:
Envoyé par PatSan Voir le message
Je veux éviter de mettre un quelconque code dans l'iframe (histoire de le rendre indépendant car utilisé ailleurs dans d'autres serveurs) et faire en sorte de mettre du code uniquement dans ma page principale...
j'entrevois donc un problème de communication...
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 00h12   #6
Candidat au titre de Membre du Club
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : Arts - Culture

Informations forums :
Inscription : avril 2011
Messages : 44
Points : 10
Points : 10
Quelle serait la solution si les iframes se trouvaient sur le même serveur, toujours en évitant de mettre un quelconque code dans les iframes ?
PatSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 09h15   #7
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
un attribut "onload" sur ton iframe qui est executé lors du chargement d'une page dans la frame. Par contre je ne sais plus si c'est au chargement ou lorsque la page est chargée.
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 18h12   #8
Candidat au titre de Membre du Club
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : Arts - Culture

Informations forums :
Inscription : avril 2011
Messages : 44
Points : 10
Points : 10
Je voudrais éviter de mettre du code dans les iframes !
PatSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 20h46   #9
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Bonsoir,

bewidia t'a donné la réponse :

http://www.w3schools.com/jsref/event_frame_onload.asp

l'évènement onload de l'iframe est lancé lors du chargement de celle-ci, et correspond au window.onload qu'on utiliserait pour du code à l'intérieur de l'iframe.

C'est bien un évènement lancé dans la page mère...

Je te laisse regarder les exemples du lien ci-dessus, mais si ta dernière réponse signifie que tu ne veux pas mettre l'attribut directement dans la balise, ça marche aussi avec une référence sur l'iframe, comme n'importe quel évènement :
Code :
1
2
3
4
5
 
var ifrm = document.getElementById("monIframe");
ifrm.onload = function() {
.... // traitement
}
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 20h55   #10
Candidat au titre de Membre du Club
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : Arts - Culture

Informations forums :
Inscription : avril 2011
Messages : 44
Points : 10
Points : 10
Ok, désolé, j'avais mal interprété son message.
Petite colle : j'ai des iframes qui ont déjà un javascript associé à l'événement onload. Comment faire pour y ajouter un autre code dynamiquement ?
PatSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 21h17   #11
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Il faut adopter l'attachement de gestionnaire d'évènement multiples avec :
https://developer.mozilla.org/fr/DOM...dEventListener (firefox et consort)
ou
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx (IE)

Généralement, si l'on utilise pas de framework, on fait une fonction de ce type (codé à la va-vite, mais tu trouveras plein d'exemple plus propre sur le net...) :
Code :
1
2
3
4
5
6
7
8
 
function addEvent(elem, type, fn){
    if (elem.addEventListener){
        elem.addEventListener(type,fn,false);
    } else if (elem.attachEvent){
        elem.attachEvent("on"+type,fn);
    }
}
Cela permet d'attacher autant de gestionnaire d'évènement que l'on souhaite sans écraser ceux existants.
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 18h58   #12
Candidat au titre de Membre du Club
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 44
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : Arts - Culture

Informations forums :
Inscription : avril 2011
Messages : 44
Points : 10
Points : 10
Un grand merci à tous pour les infos ! J'ai résolu mon problème...
PatSan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h24.


 
 
 
 
Partenaires

Hébergement Web