|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 45 ![]() |
Bonjour !
Je cherche à lancer une fonction js sans onClick ou autre, à l'ouverture d'une page. J'ai déjà essayé de faire onLoad='maFonction()' dans le body, sans résultat. J'ai aussi essayé Code :
Code :
<a id ='clic' name='clic' class="laclass" onclick='openbox("", 1)'>cliquer ici</a> Voici le code du marqueur Code :
Il n’empêche que de toutes façons j'arrive bel est bien sur ma page avec mon googleMaps et mon &_request bien présent, j'ouvre ma box seulement si cette variable est présente, et le onclick marche. J'ai trouvé un problème similaire ici: http://forum.webrankinfo.com/lancer-...nt-t83692.html Mais ça ne m'a pas aidé. J'ai découvert l'existence de la fonction doCLick(), qui est sensée simuler un click de l'utilisateur, mais impossible de trouver comment elle fonctionne... je ne sais pas si cela peut être la solution du problème |
||||
|
|
00
|
|
|
#2 |
Sylvain Poitiers Inscription : mai 2008 Messages : 229 ![]() |
et si tu utilise une fonction du genre setInterval ?
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 45 ![]() |
Hum, si je comprend bien son utilité, je peux lancer des script toutes les x secondes? Cela ne va pas ouvrir plusieurs fois ma lightbox?
Le problème étant le même, je ne sais pas commenter lancer ma fonction, même en utilisant setInterval. Qui plus est, j'ai lu que cette fonction posait des problèmes avec certains navigateurs (IE powa), or je travaille pour une boîte dont certains clients sont encore sous IE7 Edit: je vais tester tout de même, histoire de voir si la fonction se lance si on l'appelle dans une autre fonction :O |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 45 ![]() |
Cela fonctionne, ma box s'ouvre toute seule grâce à ça!
Y-a-t-il une autre solution que de mettre un timer enorme pour que la box reste affichée en continu? |
|
|
00
|
|
|
#5 |
Sylvain Poitiers Inscription : mai 2008 Messages : 229 ![]() |
peut être un booléan. Au début tu le met a false et quand ta box est ouverte tu le met à true. Comme ca ta box ne sera ouverte qu'une fois.
|
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Inscription : mars 2008 Messages : 2 686 ![]() |
Bonjour,
Si c'est le fait que la fonction se lance à intervalle régulier, pourquoi ne pas prendre setTimeout ? Ou bien vider le timer (clearTimer(timer)) ? |
|
|
00
|
|
|
#7 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
![]() Quels problèmes ? Sinon, pour ton problème, il est probable que ça soit dû à l'appel du script avant que les éléments sur lesquels il travaille n'existent dans la page.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
onload est infaillible, c'est l'événement de base en javascript;
quel dommage qu'on ne voie pas ta fonction openbox()...
__________________
On ne mord pas, on manifeste seulement notre tristesse face à des exposés de situations qui défient notre entendement binaire. |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Pas tout à fait JT.
Apparemment, il s'agit d'une carte Google, qui est donc chargée via un script, du coup tu peux avoir le onload de la page sans que la carte ai fini de se charger, d'où le problème rencontré Mais il existe un événement déclenché par Google au chargement de la carte.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#10 | ||||||||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 45 ![]() |
Bovino, je n'en sais rien, mais:
setInterval() pose des problèmes de compatibilité avec certains navigateurs de version 4. Il est plus sûr d'utiliser setTimeout(). Effectivement ils proposent d'utiliser setTimeout mais j'espérais qu'il y aurait une solution plus... "normale". Vermine J'ai essayé d'utiliser clearTimer(timer) mais cela ferme ma box Sylvain je ne comprend pas, que faire de ce booléen? je ne pensais pas que le code vous interesserait, mais voici donc le code pour la lightbox Code :
Code :
Je trouve tout de même étrange que Code :
Code :
|
||||||||
|
|
00
|
|
|
#11 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
Essaye de te renseigner sur la date de dernière mise à jour des informations de ce site D'autre part, connais-tu les stats d'utilisation actuelle d'IE4 et Netscape4...
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 45 ![]() |
A vrai dire, je ne pensais pas qu'il parlait d'IE4 mais plutot de firefox 4.
Je me suis inquiété pour rien alors ^^
|
|
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
Salut,
L'évenement onload est peut-être remplacé par une autre partie du code. Placer le code ci-dessous dans la partie <head> pour voir... Code js :
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
||
|
|
20
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 45 ![]() |
Génial, ça fonctionne. Merci beaucoup!
Pouvez-vous m'expliquer rapidement comment est survenu ce problème? En tout cas merci à tous de vous être penché là dessus, ça m'a fait apprendre des choses |
|
|
00
|
|
|
#15 | ||
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
Soit le gestionaire d'évenement a été écrasé, soit il a été activé trop tôt.
La fonction addLoadListener ajoute un gestionnaire (fonction) pour l'événement onload de l'objet window. Ce évenement se déclenche une fois le document et tous ses composants chargés dans le DOM. Remarque : L'utilisation de seTimeout ou setInterval est, comme nous l'avons constaté, fort pratique. Cela nous permet de différer l'éxecution d'une fonction. Si, au pire, un élément requis par la fonction openbox n'était toujours pas immédiatement disponible, nous aurions : Code js :
afin d'appeler la fonction openbox une seconde (pour l'exemple) après le chargement de la page et tous ses composants.
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
||
|
|
10
|
|
|
#16 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 45 ![]() |
Ah je comprend maintenant pourquoi cela fonctionnait avec le setInterval.
Même si ça reste flou je comprend le principe, ainsi je saurai d'ou peut venir le problème à l'avenir. Encore merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com