Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Un iframe déclenche un 2ème onload ?

Envoyé par : Sergio

Date : 18/05/2006 10:14

Bonjour,

Je reviens sur un comportement bizarre à l'affichage d'un iframe dans un tabbox.
(J'ai essayé avec <browser> : le comportement est le même)

Au chargement de la page, je passe bien dans la fonction init().
Quand je clique sur le bouton 'Afficher iframe dans un tabbox' l'iframe devient bien visible mais la fonction init() est appelée une deuxième fois. Pourquoi ?

Quelque chose me dit que ce doit être normal... et je suis preneur de l'explication.

Néanmoins je voudrais, justement, que cette fonction ne soit pas appelée une deuxième fois !
Que faire ?

Merci de vos conseils.

<?xml version="1.0" encoding="ISO-8859-15"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css" ?>

<window
id      = "idFenetre"
title   = "Test"
xmlns   = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload  = "init();"
>

<script type="application/x-javascript">
var passage = 0;
function init()
{
   alert('Passage n°' + ++passage + ' dans la fonction init()');
}
function action_sur(id)
{
switch (id)
	{
	case "f0_ok" :
		cacher("f0");
		voir("f2");
		break;
		}
}
function voir(id)
{
document.getElementById(id).removeAttribute("hidden");
}
function cacher(id)
{
document.getElementById(id).setAttribute("hidden", "true");
}
</script>

<vbox id="f0" flex="1">
 <hbox style="background-color:#FFFFE0;"><description>Ecran initial</description>
 <button label="Afficher iframe dans un tabbox"
     id="f0_ok"
     onclick="action_sur(this.id);" />
 </hbox>
</vbox>

<hbox id="f2" flex="1" hidden="true">
<vbox flex="1">
<description>Tabbox avec iframe</description>
<tabbox id="f2_onglets" flex="1">
   <tabs>
     <tab label="Iframe" />
   </tabs>
   <tabpanels flex="1">
     <tabpanel id="f2_1">
	<iframe flex="1" src="about:blank" />
     </tabpanel>
   </tabpanels>
</tabbox>
</vbox>
</hbox>

</window>

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : Sergio

Date : 18/05/2006 15:16

Finalement je viens de trouver la réponse sur :
http://xulplanet.com/forum/viewtopic.php(..)

Il faut mettre onload="if (event.target == document) init();" au lieu de onload = "init();"

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : laurentj

Date : 22/05/2006 12:59

Tu aurais lu la faq du wiki...

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : Sergio

Date : 23/05/2006 12:57

Désolé, mais je ne trouve pas...

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : laurentj

Date : 23/05/2006 13:37

tu cliques sur wiki en haut. Ensuite à gauche, dans le menu principal, il y a un item "FAQ"... j'ai du mal à voir comment faire plus "voyant" ;-)

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : Sergio

Date : 23/05/2006 14:53

D'accord je ne suis pas doué... mais j'avais quand même trouvé la FAQ :-)

http://xulfr.org/wiki/FaqDev

Mais ensuite sur cette page je ne vois rien en rapport avec ma question : c'est cela que je voulais dire.

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : wako

Date : 23/05/2006 15:15

humm

j'ai mis un gestionnaire d'évènement onload sur ma fenêtre, mais celui-ci est executé plusieurs fois, pourquoi ?
   c'est un bug (ou une feature ?) connu de Firefox, quand vous avez des iframes dans votre page, l'évènement load de l'iframe se propageant dans la fenêtre mère.

4 ou 5 eme ligne

wako

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : Sergio

Date : 23/05/2006 15:27

Vu ! Si, si !

N'empêche que c'est un signalement, mais que la solution n'y figure pas.
Ce serait peut-être bien de la rajouter ? :-)

On peut contourner ce problème en mettant :
onload="if (event.target == document) init();" au lieu de onload = "init();"
http://xulplanet.com/forum/viewtopic.php(..)

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : laurentj

Date : 23/05/2006 15:41

qu'attend tu pour le faire ? :-)

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : Sergio

Date : 23/05/2006 16:00

C'est fait. :-)

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : laurentj

Date : 24/05/2006 13:11

cool merci :-)

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : Christophe Charron

Date : 29/05/2006 23:10

Bonsoir, vu ici http://www.xulplanet.com/references/elemref/ref_iframe.html

et la ligne

<iframe flex="1" src="about:blank" />

devient

<iframe flex="1" onload="event.stopPropagation();" src="about:blank" />

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : souqueta

Date : 31/05/2006 11:06

A l'affichage de mon iframe , mon curseur est constamment en position "wait". Malgré la similitude de mon problème avec le topic, je ne parviens pas à le résoudre. L'usage de l'attribut wait-cursor à false n'y fait rien du tout.

<iframe id="textconsole"  height="250" width="1024" wait-cursor="false"/>

Merci du coup de pouce :)

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : laurentj

Date : 31/05/2006 11:20

enleve l'attribut plutot que de le mettre à false. ça marchera peut etre.

# Re: Un iframe déclenche un 2ème onload ?

Envoyé par : souqueta

Date : 31/05/2006 11:27

Malheuresement non.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.