Pour empêcher l'usage de la touche f5 et du rafraîchissement dans une page html (ou php)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 25 863 fois - Téléchargée 27 fois

Contenu du snippet

J'ai passé un peu de temps à chercher (mal sans doute) sur les FORUM comment empêcher le rafraîchissement d'une page HTML, par la touche F5 ET par le bouton du navigateur...
et je n'ai pas trouvé tout à fait chaussure à mon pied, c'est pourtant quelquefois nécessaire.

Ma solution est la suivante (doit fonctionner avec IE4+ et avec Nestscape6+) :
1) pour empêcher l'utilisation du bouton du navigateur, ouvrir la fenêtre avec:
<A HREF="#" onClick="window.open('mapage.php,'libellé','toolbar=0,location=0,directories=0,status=0,scrollbars=1,resizable=1,copyhistory=0,menuBar=0,width=800,height=600');return(false)">...</a>
2) pour détourner la touche F5 (maintenant, elle doit fermer la fenêtre), ajouter le code proposé plus bas dans les parties "<javascript>" et "<body>"

Source / Exemple :


<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script type="text/javascript" language="javascript">

var layers = false;
var ie4 = (document.all) ? true : false;
var ns6 = (document.getElementById&&!document.all) ? true : false;
if (ie4 || ns6) {layers = true;} 

 
function test_f5(e)

{ 
var val="";
if(ie4)	{
	val="K"+window.event.keyCode;
	if (val == "K116") { 
		window.close();
	} else {
		return true; 
	}
}
if (ns6) {
	val="K"+e.which;
	if (val == "K116") { 
		window.close();
	} else {
		return true; 
	}
}
}

</script>
</head>
<body onKeyDown="test_f5(event)">
...
</body>
</html>

Conclusion :


-> onKeyDown teste la touche qui a été activée

-> le paramètre (event) est passé pour l'usage de Netscape

Il y a sans doute 1000 autres manières d'arriver au résultat ...

Je remercie tous ceux qui m'ont donné un peu de ce tout qui marche.

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de jalliot

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.