Mammouth du PHP |
19672 Messages
30 avr. 2007, 14:20
Enfin bon, pour la réponse, c'est peut-être subtil, mais il manque un élément dans ton gestionnaire d'évènement, ce qui fait que la fonction appelée ne peut jamais s'exécuter.
On va commencer par faire un grand ménage dans ton code en virant l'inutile et en mettant ça un peu aux normes. Ça donne ceci :
Code : Tout sélectionner
<script type="text/javascript">
/* <![CDATA[ */
window.status = "bienvenue";
function deconnection()
{
if (confirm("Voulez vous vraiment se déconnecter")==True)
{
window.location.replace( "principale1.html");
}
}
/* ]]> */
</script>
<p style="text-align: center; font-weight: bold; color: #fff; font-size: 24px;"><a href="#" onClick="deconnection(); return false;">Déconnection</a></p>
Comme il s'agit d'un lien hyper-texte, tu n'as nullement besoin de mettre ça dans un formulaire, donc la balise <form> saute. Ensuite, utilise des CSS au lieu de la balise <font>, ça éclaircit un peu.
Enfin, et c'est l'élément manquant : dans le gestionnaire d'évènement, j,ai rajouté "return false;" : pourquoi ? Parce que sinon, en cliquant sur le lien, la page se recharge vers le lien indiqué dans l'attribut href, en l'occurence "#", en clair, la page se recharge. Mais du coup, on est plus dans la même page au sens strict, l'url est la même, mais comme il y a eu rechargement, la script appelé n'est pas exécuté. Je ne sais pas si tu saisis le principe général, ça peut paraître un peu abscons

On empèche le navigateur de suivre ce lien avec "return false" tout simplement et ça permet à la fonction JavaScript de s'exécuter normalement dans... la page en cours.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 