onbeforeunload et fonctions imbriquées

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : onbeforeunload et fonctions imbriquées

par bravegars » 03 avr. 2007, 12:38

Merci pour ta réponse Ryle. Si je sors la sous fonction maFonction, cela fonctionne, mais lorsque j'envoi un message, onbeforeunload se déclenche et efface les fichiers du chat.

C'est pour ça que j'ai rajouté le code :

window.onbeforeunload = confirmExit;

et que j'ai mis maFonction dans confirmExit.

En fait confirmExit isole maFonction du reste de mes scripts, ce qui fait que lorsque j'envoi un message tout se passe bien. Mais en faisant ça, c'est l'appel a maFonction qui ne marche plus.

Je vais voir si je trouve une solution, j'aimerais bien en finir enfin avec ce chat. Ce qui complique tout en fait c'est que je veux que tout fonctionne de manière transparente, sans affichage de fenêtre d'avertissement. Sinon je pense que ça serait terminée depuis un bon moment. :cry:

par Ryle » 03 avr. 2007, 10:12

En la sortant de l'autre fonction ? :)

Quel intérêt de déclarer une fonction dans une fonction quand il ne s'agit pas d'une méthode d'un objet ? Tu auras le même résultat (au final hein, pas l'erreur ;)) où que soit déclarée ta fonction maFonction() dans ta page

Par contre pourquoi spécifier l'appel à maFonction dans le <body> alors que tu l'écrases juste après avec ton script ?

onbeforeunload et fonctions imbriquées

par bravegars » 03 avr. 2007, 09:25

Salut,

Maintenant la requete qui doit mettre a jour la liste des connectés ne marche plus, car elle se trouve à l'intérieur d'une autre fonction.

Code : Tout sélectionner

<body onbeforeunload="javascript:maFonction()">

Code : Tout sélectionner

<script type="text/javascript"> window.onbeforeunload = confirmExit; // j'ai été obligé de déclarer window.onbeforeunload comme ceci pour résoudre mon précédent probleme function confirmExit(){ $winev = window.Event; if(winev){ window.onbeforeunload = function(winev){ return maFonction(winev); } } else{ window.onbeforeunload = function(){ return maFonction(winev); } } function maFoncion(){ .................... // cette fonction ne fonctionne plus maintenant } } </script>
Comment faire pour appeler une fonction dans une autre fonction ?
Merci. :?