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,
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,
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.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 document.onkeydown= ...
ERE
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.
Merci,
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; } }
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
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.
Merci,
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); });
Salut,
Essaie plutôt:
ERE
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); });
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,
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;
Partager