je pensais, sans doute naïvement, que ça se produit quand la fenêtre est
chargée, ben avec Camino non.
basiquement, mon script, après quelques tripatouillages fait un :
window.onload=run();
il bloquait quand il était dans les balises <head/>
je l'ai mis juste avant </body>, ça marche nickel-chrome et donc, quand
ça ne marchait j'ai mis un alert("toto"); dans ma fonction run().
donc la question est de savoir si oui ou non window.onload c'est qd le
nav a fini de charger la page ou si ce n'est vrai qu'en théorie, les
implémentations c'est autre chose ;-)
ou, autre possibilité, me goure-je ?
(qq'un qui n'a plus fait de js+dom+xhtml+css depuis plusierus années)
Ce que voulait écrire apparemment Yvon Thoraval est : window.onload=run; // sans parenthèses
Bon, effectivement j'ai corrigé et ça marche comme je le souhaite sur ma page d'essai où ne s'y trouvent que les ingrédients spécifiques à ce script.
Par contre, sur une autre page, la vraie, celle sur laquelle le script devra-t-être installé in fine, ça ne marche pas comme je veux, je dois tjs mettre mon script après les éléments html.
L'essai est là : <http://81.57.96.20/~yvon/essais/lafoo.html>
La version à intégrer là : <http://81.57.96.20/~yvon/AceMDI/home/home.html> (je n'interviens pas sur le reste de la page juste js+css+html associé aux images défilantes)
les deux scripts sont différents, laf.js : pas de preload, laf_home.js : AVEC preload...
attention il y a un paquet d'images à charger (808 ko)
je peux réduire si demande... -- yt
YD <yd-news@free.fr> wrote:
Ce que voulait écrire apparemment Yvon Thoraval est :
window.onload=run; // sans parenthèses
Bon, effectivement j'ai corrigé et ça marche comme je le souhaite sur ma
page d'essai où ne s'y trouvent que les ingrédients spécifiques à ce
script.
Par contre, sur une autre page, la vraie, celle sur laquelle le script
devra-t-être installé in fine, ça ne marche pas comme je veux, je dois
tjs mettre mon script après les éléments html.
L'essai est là :
<http://81.57.96.20/~yvon/essais/lafoo.html>
La version à intégrer là :
<http://81.57.96.20/~yvon/AceMDI/home/home.html>
(je n'interviens pas sur le reste de la page juste js+css+html associé
aux images défilantes)
les deux scripts sont différents, laf.js : pas de preload, laf_home.js :
AVEC preload...
attention il y a un paquet d'images à charger (808 ko)
Ce que voulait écrire apparemment Yvon Thoraval est : window.onload=run; // sans parenthèses
Bon, effectivement j'ai corrigé et ça marche comme je le souhaite sur ma page d'essai où ne s'y trouvent que les ingrédients spécifiques à ce script.
Par contre, sur une autre page, la vraie, celle sur laquelle le script devra-t-être installé in fine, ça ne marche pas comme je veux, je dois tjs mettre mon script après les éléments html.
L'essai est là : <http://81.57.96.20/~yvon/essais/lafoo.html>
La version à intégrer là : <http://81.57.96.20/~yvon/AceMDI/home/home.html> (je n'interviens pas sur le reste de la page juste js+css+html associé aux images défilantes)
les deux scripts sont différents, laf.js : pas de preload, laf_home.js : AVEC preload...
attention il y a un paquet d'images à charger (808 ko)
je peux réduire si demande... -- yt
YD
Désolé de ne pas avoir été plus rapide mais le temps manque - pas le travail !
YD wrote:
window.onload=run; // sans parenthèses
Bon, effectivement j'ai corrigé et ça marche comme je le souhaite sur ma page d'essai où ne s'y trouvent que les ingrédients spécifiques à ce script.
Par contre, sur une autre page, la vraie, celle sur laquelle le script devra-t-être installé in fine, ça ne marche pas comme je veux, je dois tjs mettre mon script après les éléments html.
Je pense avoir trouvé ce qui posait problème !
Le script affecte window.onload avec run mais la page après attribue onload à autre chose dans le tag BODY : <body onload="loginfocus();" ...
Or c'est le même objet du navigateur dans les deux cas, donc la deuxième affectation écrase la première.
Un contournement : - supprimer l'attribut onload du BODY - dans le script, au choix : ajouter loginfocus() dans la fonction run : function run() { vc.showOne(num); num++; if(num == size) num = 0; myCounter = setTimeout("run()", 1000); loginfocus(); }
ou si ça te gêne de mélanger torchons et serviettes, une fonction anonyme : window.onload=function(){run(); loginFocus();} ou syntaxe 2 plus Java ;-) window.onload = new Function("run(); loginfocus();")
ou alors supprimer window.onload du script et dans la balise BODY <body onload="run();loginfocus();"...
Tout cela revenant grosso modo au même, déclarer un seul onload quoi ;-)
-- Y.D.
Désolé de ne pas avoir été plus rapide mais le temps manque - pas le
travail !
YD <yd-news@free.fr> wrote:
window.onload=run; // sans parenthèses
Bon, effectivement j'ai corrigé et ça marche comme je le souhaite sur ma
page d'essai où ne s'y trouvent que les ingrédients spécifiques à ce
script.
Par contre, sur une autre page, la vraie, celle sur laquelle le script
devra-t-être installé in fine, ça ne marche pas comme je veux, je dois
tjs mettre mon script après les éléments html.
Je pense avoir trouvé ce qui posait problème !
Le script affecte window.onload avec run mais la page après attribue
onload à autre chose dans le tag BODY :
<body onload="loginfocus();" ...
Or c'est le même objet du navigateur dans les deux cas, donc la deuxième
affectation écrase la première.
Un contournement :
- supprimer l'attribut onload du BODY
- dans le script, au choix :
ajouter loginfocus() dans la fonction run :
function run() {
vc.showOne(num);
num++;
if(num == size) num = 0;
myCounter = setTimeout("run()", 1000);
loginfocus();
}
ou si ça te gêne de mélanger torchons et serviettes, une fonction anonyme :
window.onload=function(){run(); loginFocus();}
ou syntaxe 2 plus Java ;-)
window.onload = new Function("run(); loginfocus();")
ou alors supprimer window.onload du script et dans la balise BODY
<body onload="run();loginfocus();"...
Tout cela revenant grosso modo au même, déclarer un seul onload quoi ;-)
Désolé de ne pas avoir été plus rapide mais le temps manque - pas le travail !
YD wrote:
window.onload=run; // sans parenthèses
Bon, effectivement j'ai corrigé et ça marche comme je le souhaite sur ma page d'essai où ne s'y trouvent que les ingrédients spécifiques à ce script.
Par contre, sur une autre page, la vraie, celle sur laquelle le script devra-t-être installé in fine, ça ne marche pas comme je veux, je dois tjs mettre mon script après les éléments html.
Je pense avoir trouvé ce qui posait problème !
Le script affecte window.onload avec run mais la page après attribue onload à autre chose dans le tag BODY : <body onload="loginfocus();" ...
Or c'est le même objet du navigateur dans les deux cas, donc la deuxième affectation écrase la première.
Un contournement : - supprimer l'attribut onload du BODY - dans le script, au choix : ajouter loginfocus() dans la fonction run : function run() { vc.showOne(num); num++; if(num == size) num = 0; myCounter = setTimeout("run()", 1000); loginfocus(); }
ou si ça te gêne de mélanger torchons et serviettes, une fonction anonyme : window.onload=function(){run(); loginFocus();} ou syntaxe 2 plus Java ;-) window.onload = new Function("run(); loginfocus();")
ou alors supprimer window.onload du script et dans la balise BODY <body onload="run();loginfocus();"...
Tout cela revenant grosso modo au même, déclarer un seul onload quoi ;-)
-- Y.D.
yvon.thoravalNO-SPAM
YD wrote:
Tout cela revenant grosso modo au même, déclarer un seul onload quoi ;-)
Ah ouais, m$@@de c'est ça, bravo et merci !
Mais bon le loginfocus() je ne peux pas y toucher... On aura bientôt autre chose, au moins je serai aaverti ;-) -- yt
YD <yd-news@free.fr> wrote:
Tout cela revenant grosso modo au même, déclarer un seul onload quoi ;-)
Ah ouais, m$@@de c'est ça, bravo et merci !
Mais bon le loginfocus() je ne peux pas y toucher...
On aura bientôt autre chose, au moins je serai aaverti ;-)
--
yt