OVH Cloud OVH Cloud

empecher le shift sous firefox

12 réponses
Avatar
Etienne SOBOLE
salut.

j'ai besoin d'empécher qu'un clique avec SHIFT enfoncé n'ouvre un nouveau
navigateur sous firefox.
sous IE pas de probleme. je retourne false et le shift n'est plus géré, mais
sous firefox, ca m'ouvre a tous les coup un nouveau navigateur.

j'ai vraiment besoin d'un coup de main la !!!

Merci
Etienne

2 réponses

1 2
Avatar
Laurent Vilday

et alors ?
en quoi cela résoud le non popup lors d'un shift+click sur le lien ?

j'ai essyé çà sans succès :
<a href="test.htm"
onclick="if(event.shiftKey){
self.location=this.href;
return false;
}">sobole non ok</a>

qui ouvre bien test.htm dans même fenêtre
mais n'empèche pas le popup simultané
et comme on ne peut faire event.shiftKey = false;
je ne vois pas la soluce.


le "return false;" permet d'annuler ce listener d'événement (onclick).
On obtient la même chose en passant par event.preventDefault() (version
DOM) ou event.returnValue = false; (version IE)

Mais puisque shift est appuyé il faut aussi empecher l'événement de se
propager puisque ce n'est alors plus l'événement par défaut qu'on veut
annuler.

pour DOM on empêche la propagation avec event.stopPropagation();
http://developer.mozilla.org/en/docs/DOM:event.stopPropagation

pour IE c'est event.cancelBubble = true;
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/cancelbubble.asp

<a href="refere.html"
onclick="if(event.shiftKey){
self.location=this.href;
try{
event.stopPropagation();
} catch(e) {
event.cancelBubble = true;
}
return false;
}">et la, est-ce que c'est ok ?</a>

--
laurent

Avatar
ASM

<a href="refere.html"
onclick="if(event.shiftKey){
self.location=this.href;
try{
event.stopPropagation();
} catch(e) {
event.cancelBubble = true;
}
return false;
}">et la, est-ce que c'est ok ?</a>


oui, oui, c'est ok

reste plus qu'à bosser ces histoires de propagations :-/

pour DOM on empêche la propagation avec event.stopPropagation();
http://developer.mozilla.org/en/docs/DOM:event.stopPropagation


pour IE c'est event.cancelBubble = true;
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/cancelbubble.asp



je n'ai pas essayé avec NC4.5 :-)
(à ts les coups il doit bloquer sur 'try' (de mémoire) )


--
Stephane Moriaux et son [moins] vieux Mac

1 2