IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Gerer le ctrl + S en javascript


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    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.

  2. #2
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    non

  3. #3
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    Par défaut
    Citation Envoyé par skeud Voir le message
    non
    pourquoi non ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 - Mon Blog 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

    Venez sur le Chat de Développez !

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    Par défaut
    ok merci à vous, c'est bien dommage... x)

  7. #7
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut


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

    par contre je sais pas comment ils font

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    ç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+

  10. #10
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    Par défaut
    Si quelqu'un sait comment ils font, qu'il s'exprime ^^
    Google a peu être des permissions particulière dans firefox aussi nan ?

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Effectivement, il est possible d'empêcher la propagation de l'événement du document au navigateur.
    Une solution assez simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?!

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #14
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    Par défaut
    Ouep mais comment pourrai on faire pour que sa n'ouvre pas de fenetre lors du ctrl + s ? Dans google document ils y arrivent !

  15. #15
    Invité
    Invité(e)
    Par défaut
    et de cette facon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    	}

  16. #16
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    Par défaut
    Citation Envoyé par mekal Voir le message
    et de cette facon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  17. #17
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonsoir,
    de façon plus générique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  18. #18
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonsoir,
    de façon plus générique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  19. #19
    Membre actif
    Inscrit en
    Octobre 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 59
    Par défaut
    Dois je faire ceci ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  20. #20
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Gerer message d'erreur avec javascript et struts
    Par phpaide dans le forum Struts 1
    Réponses: 1
    Dernier message: 22/01/2009, 16h12
  2. Réponses: 1
    Dernier message: 04/06/2008, 17h00
  3. Généré un Ctrl-F à partir de Javascript
    Par vsevel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/05/2007, 18h44
  4. Comment gérer les objects déclarer en HTML dans un script JAVASCRIPT?
    Par Thauglor dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/04/2006, 14h54
  5. [Javascript] Gerer impression automatique de document
    Par amarcil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/02/2006, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo