ALT+E - raccourcis clavier

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 4 sept. 2008 à 10:11
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 - 4 sept. 2008 à 14:37
Bonjour à tous,

J'aimerai utiliser ALT+lettre pour faire des raccourcis sur une appli Web interne en ASP

J'arrive bien à récupérer l'event KeyCode et compagnie, seuleument, pour ALT+E par exemple, il m'exécute bien l'action MAIS il ouvre également le menu Edition du navigateur tout de suite après!

Quelqu'un saurait-il comment empêcher l'ouverture du menu Edition du navigateur lorsqu'on appuie sur ALT+E?..

Merci de votre aide.

TBBUIM

10 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
4 sept. 2008 à 11:14
bonjour,
pas sûr qu'on puisse,
ces touches sont interceptées par le navigateur...
même        event.returnValue = false;
               et return false;      sont inefficaces...
Cordialement   Bul  [mon Site] [M'écrire] |
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 sept. 2008 à 11:23
On peut! J'ai réussi à trouver un bidouillage, mais je suis sûr qu'ya une méthode efficace, qui marche à coup sûr.

Méthode de substitution :
<head>
function Exec()
{
 document.getElementById("lab").focus(); //On change de focus 
 alert("tu vois que c'est possible...");
}
</head>

Acceskey ne fonctionne que sous IE
cette méthode marchotte mais n'empêche pas totalement l'ouverture du menu Edition...
Merci de me faire parvenir votre solution , pour Mozilla ou IE, n'hésitez pas.
TBBUIM
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 sept. 2008 à 12:02
J'ai trouvé une solution pour Mozilla, mais ça ne marche pas sous IE
Il faut stopper la propagation de l'appuie de touche dans le DOM
on peut le faire à l'aide de la fonction stopPropagation()

Exemple :
<html><head>
<title>altKey example</title>
<script type="text/javascript">
function showChar(e){
  alert(
    "Key Pressed: " + String.fromCharCode(e.charCode) + "\n"
    + "charCode: " + e.charCode + "\n"
    + "ALT key pressed: " + e.altKey + "\n"
  );
  e.stopPropagation();
}

</script>
</head>

Press any character key,
with or without holding down the ALT key.

You can also use the SHIFT key together with the ALT key.

</html>

Je suis toujours preneur, si quelqu'un a une solution pour IE, je suis sûr que c'est possible...
TBBUIM
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
4 sept. 2008 à 12:23
e.cancelBubble = true;    pour IE

j'avoue que je n'avais absoluement pas pensé à faire ça comme ça !
amusant et intéressant

Cordialement     Bul  [mon Site] [M'écrire], <!--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 sept. 2008 à 12:26
Chez moi ça ne marche pas e.cancelBubble = true;
Même event.cancelbubble = true;
Pourrais-tu poster un code exemple pour que je puisse tester stp.
Ca fait des jours que je cherche une solution, je désespère
Merci

TBBUIM
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
4 sept. 2008 à 12:50
extrait de DJ




<script type="text/javascript">

   function noprog(col,evt)

   {  if (window.event)

           evt.cancelBubble = true;

      else evt.stopPropagation();

      alert("click sur td:"+col.innerHTML);

   }

</script>

<table border=2>

   ----

     , le onclick sur le
TR va être déclenché</td>

      ici par contre, le onclick
du tr est invalidé

</td>
</tr>
</tbody>
</table>

bon, c'est un exemple sur td / tr .... mais le principe est là

Cordialement    Bul [mon Site] [M'écrire], <!--
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 sept. 2008 à 13:04
Mon problème ce situe au niveau de ALT+E sous IE
(toutes les touches de raccourcis du menu d'IE en général)
Le reste, clic, shift, ctrl etc ça se contrôle sans trop de problème.

J'ai beau mettre cancenBubble et tout ce que je veux dans tous les sens,
à part le bidouillage du début que j'ai mis en exemple, rien ne marche!
Il ouvre qd mm le menu...
Je sais que sous IE, stopPropagation() équivaut à cancelBubble
C'est la 1ere chose que j'ai essayé qd j'ai commencé à vouloir utiliser ALT+E...

J'ai une autre idée, mais je sais pas si c'est possible. Peut-on détourner l'event après la récupération de celui-ci. C'est à dire
Je check si on appuie sur ALT+E, je fais une action et tout suite après, je détourne l'appuie de la touche pour faire croire que j'ai fait shift à la place de alt ou un truc du genre.
TBBUIM
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
4 sept. 2008 à 14:04
Il ne faut pas se contenter de stopper la propagation, dans ton cas, il faut aussi annuler l'événement:

if(event.preventDefault) event.preventDefault();
event.returnValue = false;

Ensuite, tu peux également sniffer l'appuie sur une touche méta (shift, ctrl, ...) par la syntaxe suivante :

event.metaKey==1
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 sept. 2008 à 14:33
lol Comme l'a dit Bultez plus haut :
returnValue = false et return false ne change rien au fait qu'il m'est impossible d'empêcher l'ouverture du menu Edition d'IE en faisaint ALT+E
j'aimerai bien annuler l'évènement ou le détourner, ça marche avec TOUT sauf avec ALT + lettre servant de raccourcis dans IE...

TBBUIM
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
4 sept. 2008 à 14:37
Autant pour moi désolé
0
Rejoignez-nous