Comment exécuter une fonction a chaque requête envoyé au serveur. En d'autre terme à chaque construction du DOM.
Merci
Comment exécuter une fonction a chaque requête envoyé au serveur. En d'autre terme à chaque construction du DOM.
Merci
heu tu appels ta fonction simplement ....
mafonction();
si c'est de l'ajax idem ...
en retour ajax :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <script type="text/javascript>mafonction()</script>"
est ton ami
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes
Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )
J'ai essayé ça mais ca marche pas
Le width s'applique au démarrage, mais dés que je clique sur un bouton, il prend une autre largeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function taille() { largeur= document.body.clientWidth; document.getElementById("formTopBouton:panelMainDataTable1").style.width=largeur-600+'px'; } window.onload = taille; // exécuté à chaque reload taille();
J'ai essayé aussi d'appeler ma méthode sur le onclick du bouton sur lequel j'ai cliqué. Mais le problème c'est que la fonction est exécuté (le width est bien mis à jour) mais directement après il y a la reconstruction du DOM par le serveur qui change ce dernier (la largeur biensur).
Je sais pas si vous avez compris mon soucis ?
Toute idée sera la bienvenue
heu il font quoi tes boutons ??
et ça ?
tu associes au load ta méthode , puis tu la ré-appel ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 window.onload = taille; // exécuté à chaque reload taille();![]()
est ton ami
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes
Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )
Je t'explique ce que je voudrais faire.
Je voudrais appliquer une certaine largeur à un panelgroup (un div). Pour cela j'utilise la méthode taille qui permet de définir la largeur du panelgroup.
Je voudrais appliquer ce script lors de chaque construction du DOM.
Pour cela la méthode window.onload m'a arrangé au début car elle applique le script sur le load de la vue. Mais j'ai remarqué après que cette façon est inapproprié dans mon cas de figure. Car au fait, j'ai deux boutons qui me permettent de cacher des panelgroup (div), quand je cache ces derniers, automatiquement le DOM est reconstitué est la largeur que j'avais définit dans taille() est ignoré. C'est pour cela que j'ai rajouté taille(); croyant que ça pourra causé l'appel de la méthode à chaque reconstitution du DOM. Mais je me suis vite rendu compte que onload = taille; et taille() réfère à la même chose ...
Maintenant ce que je souhaite, c'est que mon width ne soit pas changé après le clique sur l'un des boutons et au cas ou c'est pas possible, forcer l'appelle de la méthode taille() pour mettre à jour ce dernier.
Merci
sur tes boutons ( SI TA METHODE TAILLE FONCTIONNE DE BASE)
Code : Sélectionner tout - Visualiser dans une fenêtre à part <input type="button" value="click ici" onclick="premiereMethode();taille();" />
est ton ami
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes
Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )
Merci pour ta réponse,
Moi j'utilise un framework JSF, donc quand je clique sur le bouton je lance un actionListener qui exécute une méthode de mon bean, j'ai mit après un onclick mais le onclick désactive mon actionlistener
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <ice:commandLink actionListener="#{orderBook.hideLegendeView}" onclick="taille();">
je ne connais pas ce framework mais en essayant :
... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 actionListener="#{orderBook.hideLegendeView,taille}" ou actionListener="#{orderBook.hideLegendeView,orderBook.taille}"
est ton ami
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes
Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )
Non c'est une fausse syntaxe, au fait, dans le bean on dispose d'une méthode hideLegendeView(ActionEvent) qui est appelée automatiquement après le clique.
Mais j'ai une idée que je vais implémenter. en effet, je peux appeler du Javascript depuis mon bean Java grâce au Context JSF
Je vous tiens au courant
Merci
voila ça marche, j'appelle donc ma fonction javascript après le traitement du actionlistener
Merci le_chomeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "taille();");
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager