Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2011, 17h30   #1
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
Par défaut Gerer le ctrl + S en javascript

Bonjour,

Je saisqu'on peut assigné une touche à une fonction en javascript et je sais aussi que le ctrl + S est réserver au navigateur pour enregistrer la page en cour.

Mais est il possible que j’écrase cette fonction pour que, quand on fasse ctrl + S, mon site exécute une fonction particulière ?

merci d'avance.
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 09h06   #2
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
non
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/07/2011, 13h33   #3
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
Citation:
Envoyé par skeud Voir le message
non
pourquoi non ?
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 13h46   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 114
Points : 45 114
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nouvelle page 2</title>
 
<script type='text/javascript'>
function remplaceCtrlTouche(e, toucheInterdite, fonction){
        var key;
        var CtrlDown;
 
        if(window.event) {
                key = window.event.keyCode;     //IE
                CtrlDown=(window.event.ctrlKey)?true:false;
        			}
        else  {
                key = e.which;     //firefox
                CtrlDown=(e.ctrlKey)?true:false;
                }
 
        if(CtrlDown) {        //La touche Ctrl à été enfoncée, verfication de combinaison
			//verification de casse
			if(toucheInterdite.toLowerCase() === String.fromCharCode(key).toLowerCase()){
					// ici lancement de la fonction de substitution
                 fonction()
                 // annulation de la fonction originale
                 return false;
                 }
           }
        return true;
}
 
function maRecherchePerso(){
alert('faut pas vouloir copier')
}
 
</script>
</head>
 
<body onkeydown="return this.onkeypress();" onkeypress="return remplaceCtrlTouche(event,'A', maRecherchePerso)">
 
</body>
 
</html>
ce code fonctionne avec A
mais pas avec S
le ctrl+S est géré en amont ... donc inaccessible pour JS
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 14h10   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Citation:
Envoyé par K-LiBR3
pourquoi non ?
Parce que JavaScript intervient sur le comportement d'un document HTML. La fonctionnalité CTRL+S est gérée par le navigateur, donc hors de portée de JavaScript.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 17h29   #6
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
ok merci à vous, c'est bien dommage... x)
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 17h31   #7
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 604
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 604
Points : 2 233
Points : 2 233


si c'est possible, il n'y a qu'à voir GMail ou Google documents.

par contre je sais pas comment ils font
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 17h33   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Euh... non, moi je trouve ça plutôt rassurant de savoir qu'un script écrit par quelqu'un que je ne connait pas et qui s'exécute depuis un site Web ne puisse pas être maître des applications qui tournent sur mon ordi...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 18h08   #9
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 604
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 604
Points : 2 233
Points : 2 233
ça ne veut pas dire qu'il est maître de ton navigateur,
cela n'affecte pas le comportement de la sauvegarde (toujours accessible par le menu) ça squeeze juste le raccourcis clavier.

d'ailleurs une petite recherche donne quelques solutions à tester.

a+
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 19h06   #10
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
Si quelqu'un sait comment ils font, qu'il s'exprime ^^
Google a peu être des permissions particulière dans firefox aussi nan ?
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 20h21   #11
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Effectivement, il est possible d'empêcher la propagation de l'événement du document au navigateur.
Une solution assez simple :
Code :
1
2
3
4
5
6
document.onkeydown = function(e){
	if(e.ctrlKey && e.keyCode==83){
		// Ta fonction
		return false;
	}
}
A adapter pour les versions de IE < 9...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 21h52   #12
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
Citation:
Envoyé par Bovino Voir le message
Effectivement, il est possible d'empêcher la propagation de l'événement du document au navigateur.
Une solution assez simple :
Code :
1
2
3
4
5
6
document.onkeydown = function(e){
	if(e.ctrlKey && e.keyCode==83){
		// Ta fonction
		return false;
	}
}
A adapter pour les versions de IE < 9...
Merci beaucoup, sa fonctionne, le seul problème, c'est que sa ouvre également la fenêtre firefox qui demande d'enregistré la page :S ?!
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 22h08   #13
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Tu n'as qu'à tester : dmouronval.developpez.com/keycode/
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 22h28   #14
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
Ouep mais comment pourrai on faire pour que sa n'ouvre pas de fenetre lors du ctrl + s ? Dans google document ils y arrivent !
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 22h52   #15
Membre chevronné
 
Homme Krusty
Inscription : mai 2009
Messages : 472
Détails du profil
Informations personnelles :
Nom : Homme Krusty
Localisation : France

Informations forums :
Inscription : mai 2009
Messages : 472
Points : 617
Points : 617
et de cette facon

Code :
1
2
3
4
5
document.onkeydown = function(e){
	if(e.ctrlKey && e.keyCode==83){
	(navigator.appName.substring(0,3)=="Mic") ? event.returnValue = false : e.preventDefault();
		// Ta fonction
	}
__________________
programmer n'est pas connaitre tous les moindres détails d'un langage mais savoir exploiter sous toutes ses facettes ce que l'on connait.
mekal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 23h07   #16
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
Citation:
Envoyé par mekal Voir le message
et de cette facon

Code :
1
2
3
4
5
document.onkeydown = function(e){
	if(e.ctrlKey && e.keyCode==83){
	(navigator.appName.substring(0,3)=="Mic") ? event.returnValue = false : e.preventDefault();
		// Ta fonction
	}
Sa m'ouvre toujours la fenetre firefox pour enregistrer la page :S
Vous pouvez tester le ctrl + s ici : http://stratskidrow2on2esl.free.fr/testCtrlS/

le code de la page :

Code :
1
2
3
4
5
6
7
8
9
10
<script>
						document.onkeydown = function(e)
						{
							if(e.ctrlKey && e.keyCode==83)
							{
								(navigator.appName.substring(0,3)=="Mic") ? event.returnValue = false : e.preventDefault();
								alert('');
							}
						}
</script>
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 23h38   #17
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 940
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 940
Points : 4 765
Points : 4 765
Bonsoir,
de façon plus générique
Code :
1
2
3
4
5
6
7
8
9
10
11
function CancelEvent(e){
  if( e){
    e.stopPropagation();
    e.preventDefault();
  }
  if( window.event){
    window.event.cancelBubble = true;
    window.event.returnValue  = false;
    return;
  }
}
la prise en compte dépend également de la "façon" dont les touches sount appuyées, les 2 en même temps on ne passe pas l'une après l'autre cela ouvre la fenêtre de sauvegarde.

Conclusion : il faut gérer le tampon des touches...
NoSmoking est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 23h42   #18
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
Citation:
Envoyé par NoSmoking Voir le message
Bonsoir,
de façon plus générique
Code :
1
2
3
4
5
6
7
8
9
10
11
function CancelEvent(e){
  if( e){
    e.stopPropagation();
    e.preventDefault();
  }
  if( window.event){
    window.event.cancelBubble = true;
    window.event.returnValue  = false;
    return;
  }
}
la prise en compte dépend également de la "façon" dont les touches sount appuyées, les 2 en même temps on ne passe pas l'une après l'autre cela ouvre la fenêtre de sauvegarde.

Conclusion : il faut gérer le tampon des touches...

Je ne comprend pas votre code, que dois je faire exactement ?
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 23h47   #19
Invité régulier
 
P Julien
Inscription : octobre 2010
Messages : 57
Détails du profil
Informations personnelles :
Nom : P Julien

Informations forums :
Inscription : octobre 2010
Messages : 57
Points : 6
Points : 6
Dois je faire ceci ? :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script>
	document.onkeydown = function(e)
	{
		if(e.ctrlKey && e.keyCode==83)
		{
			(navigator.appName.substring(0,3)=="Mic") ? event.returnValue = false : e.preventDefault();
			CancelEvent(e);
			alert('');
		}
	}
	function CancelEvent(e)
	{
		if(e)
		{
			e.stopPropagation();
			e.preventDefault();
		}
		if(window.event)
		{
			window.event.cancelBubble = true;
			window.event.returnValue  = false;
			return;
		}
	}
</script>
K-LiBR3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 07h58   #20
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Citation:
Envoyé par K-LiBR3
Sa m'ouvre toujours la fenetre firefox pour enregistrer la page :S
Le code que je t'ai donné fonctionne parfaitement
Bien entendu, il faut que la page ai le focus...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h35.


 
 
 
 
Partenaires

Hébergement Web