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

4/5 (10 avis)

Snippet vu 27 457 fois - Téléchargée 29 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
GuilleW
Messages postés
118
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
28 décembre 2006

11 nov. 2004 à 13:23
<script>function bloqueTouche(){
if(event.ctrlKey) event.returnValue=false;
if (event.keyCode 122 || event.keyCode 116){event.keyCode=0;return false;}}document.onkeydown =bloqueTouche;</script>

Bloque le CTRL et F4 et F5 !
Si plus de ' control ' plus de probleme de CTRL+N etc ...

---
Source trouvé sur http://www.javascriptfr.com/code.aspx?ID=16023
---
GuilleW
rem78
Messages postés
230
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
5 avril 2015

10 mai 2004 à 19:28
bonjour,

Pour chacha1960, ainsi que les autres ( comme ça pas de jaloux ... lol) tu peux etre plus prècis au niv de ton script sur l'implatation de la fonction qui permet de bloquer la touche Crtl,
car je cherche depuis pas mal de temps un script qui bloque cette touche ainsi que les touches C et V....Ou je peux trouver les valeurs de ces touches ???
Merci de ton aide.
rem78
rem78
Messages postés
230
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
5 avril 2015

10 mai 2004 à 18:45
bonjour,

Pour chacha1960, ainsi que les autres ( comme ça pas de jaloux ... lol) tu peux etre plus prècis au niv de ton script sur l'implatation de la fonction qui permet de bloquer la touche Crtl,
car je cherche depuis pas mal de temps un script qui bloque cette touche ainsi que les touches C et V....Ou je peux trouver les valeurs de ces touches ???
Merci de ton aide.
rem78
bzion
Messages postés
2
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
23 mars 2004

23 mars 2004 à 14:57
Bien sûr avec le script original on ne s'en rendait pas compte car on fermait la fénêtre...
bzion
Messages postés
2
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
23 mars 2004

23 mars 2004 à 14:53
Même si l'on bloque le F5 (touche 116), Internet explorer (j'ai le 6) prends la main et rafraîchi cete fµ%$^ page!
Afficher les 10 commentaires

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.