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

Bibliothèques & Frameworks Discussion :

Gestion des raccourcis [Dojo]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Par défaut Gestion des raccourcis
    Salut ,
    Voilà mon probléme :
    Je souhaite enregistrer le modifications que l'utilisateur peut faire dans l'application via ctrl+s. Est-ce possible?
    merci,

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Ce n'est pas particulièrement un problème Dojo mais un problème de Javascript avec le souci d'intercepter des combinaisons de touches utilisées par le navigateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.onkeydown= ...
    ou un dojo.connect. Note par ailleurs que si tu ne veux pas t'ennuyer avec les différents modèles d'événements tu peux utiliser dojo.fixEvent qui normalise les propriétés des événements pour les rendre compatibles W3C.

    ERE

  3. #3
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Par défaut Gestion des raccourcis
    Salut,
    j'ai essayés ce code avec document.onkeydown, mais en fait quand je clique sur ctrl+s il y a la page d' enregistrement (enregistrer sous) qui apparait pour enregistrer toute la page web, et par la suite ça enregistre pas les modifications que j'ai fait dans l'application.
    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
      if (document.layers)
                	 document.captureEvents(Event.KEYDOWN);
                 document.onkeydown = handler;
                     function handler(e)
                     {
                         if (document.all)
                         {
                        	 ctrl = event.ctrlKey;
                        	 i = event.keyCode;
                        	 document.body.innerHTML = ctrl + " - " + i;
                        	 if (ctrl)
                        	 {
                        		 if(i != 17)
                        		 {
                        			 //alert("control " + i);
                        			 return false;
                        		 }
                        	 }
                        	 else
                        		 return true;
                         }
                    }
    Merci,

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Ton code me semble un gros copier-coller d'un code qui a fait son temps

    Dojo dispose de mécanismes d'event dédiés et multi-navigateurs (dojo.connect etc...)

    Sinon rapproche toi de ce post: http://www.developpez.net/forums/d78...ement-sous-ie/

    ERE

  5. #5
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Par défaut Gestion des raccourcis
    Salut,
    J'ai essayé ce code, ça à bloqué la boite de dialogue qui apparaît pour enregistrer toute la page web quand on fait un ctrl+s, mais ça bloque aussi toutes les touches avec.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dojo.addOnLoad(function(){
        var onKeyPressFunc = function(event) {
        	event = dojo.fixEvent(event);
            if(event.ctrlKey && event.keyCode == 's'){
                console.log('CRTL+S');
            }
            event.preventDefault();
        };
        dojo.connect(document, "onkeypress", this, onKeyPressFunc);
    });
    Merci,

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,
    Essaie plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    dojo.addOnLoad(function(){
        var onKeyPressFunc = function(event) {
        	event = dojo.fixEvent(event);
            if(event.ctrlKey && event.keyCode == 's'){
                console.log('CRTL+S');
                event.preventDefault();
            }
            
        };
        dojo.connect(document, "onkeypress", this, onKeyPressFunc);
    });
    ERE

  7. #7
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Par défaut Gestion des racourcis
    Salut,
    En fait j'ai essayé le code que vous m'avez proposé, mais dés que je fais ctrl+s la boite de dialogue d'enregistrement apparaît pour enregistrer toute la page web, du coup les modifications de l'utilisateur ne s'enregistrent pas.
    Merci,

  8. #8
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Par défaut Gestion des raccourcis
    Salut,
    Merci pour votre aide, en fait ça à marché avec ce code :
    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
    function __getKeyCode(e){
    	var intKey = 0;
    	if (e.keyCode) {
            intKey = e.keyCode;
        }
    	else {
        	if (e.which) {
                intKey = e.which;
        	}
    	}
    	return intKey;
    }
    function stopEvent(e) {
        if (e.preventDefault) {
            e.preventDefault();
            e.stopPropagation();
        }
        else {
            e.returnValue = false;
            e.cancelBubble = true;
            e.keyCode = 0;
        }
        return false;
    }
    function ControlKeyDown(e) {
    	if (!e) {
     	   var e = window.event;
    	}
    	var iTouche = __getKeyCode(e);
    	if (iTouche == 83 && e.ctrlKey) {
        	stopEvent(e);
        	enregistrer();
    	}
    }
    document.onkeydown = ControlKeyDown;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Création et gestion des raccourcis -VBA
    Par moi264 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/12/2016, 15h48
  2. Mousetrap : la gestion des raccourcis clavier
    Par FirePrawn dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/07/2012, 13h19
  3. gestion des raccourcis clavier
    Par giannichedda dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 23/03/2010, 15h31
  4. gestion des raccourcis (accelerator) avec libglade
    Par L'elfe d'Azur dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 25/08/2008, 10h34
  5. gestion des raccourcis inactifs
    Par ilimo dans le forum Windows XP
    Réponses: 2
    Dernier message: 04/05/2006, 10h28

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