Gestion d'eventKeys & inhibition comportement par défaut
2 réponses
jf gosset
Bonjour,
Je souhaite effectuer un traitement spécial sur frappe de CTRL-R
(soumission formulaire par monBouton.click()).
Tout est OK et fonctionne correctement sous IE et Opera.
Par contre sous Mozilla, le formulaire est bien envoyé mais l'action par
défaut de Mozilla (rafraîchir) s'exécute à la suite (bouton.click() ->
envoi formulaire -> réception nouvelle page en retour -> Mozilla redemande
la page d'origine).
J'ai pourtant procédé de la manière suivante :
Handler événement keydown:
monBouton.click();
suivi de :
event.cancelBubble = true;
if (event.stopPropagation) event.stopPropagation();
if (event.preventDefault) event.preventDefault();
event.returnValue = false;
return false;
Handlers keyup et keydown, j'inhibe également la propagation de
l'événement:
event.cancelBubble = true;
if (event.stopPropagation) event.stopPropagation();
if (event.preventDefault) event.preventDefault();
event.returnValue = false;
return false;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
YD
Bonjour,
Je souhaite effectuer un traitement spécial sur frappe de CTRL-R (soumission formulaire par monBouton.click()). [...] Par contre sous Mozilla, le formulaire est bien envoyé mais l'action par défaut de Mozilla (rafraîchir) s'exécute à la suite (bouton.click() -> envoi formulaire -> réception nouvelle page en retour -> Mozilla redemande la page d'origine).
J'ai pourtant procédé de la manière suivante :
Handler événement keydown: monBouton.click(); suivi de : event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); if (event.preventDefault) event.preventDefault(); event.returnValue = false; return false;
Mozilla ne connaît pas event, mais l'événement est passé en paramètre au gestionnaire. Il faut donc écrire dans la fonction gestionnaire :
function machinChose(e){ //Récupérer dans e l'événement (pour IE) if(!e) e=event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); if (e.preventDefault) e.preventDefault(); e.returnValue = false; return false; }
-- Y.D.
Bonjour,
Je souhaite effectuer un traitement spécial sur frappe de CTRL-R
(soumission formulaire par monBouton.click()).
[...]
Par contre sous Mozilla, le formulaire est bien envoyé mais l'action par
défaut de Mozilla (rafraîchir) s'exécute à la suite (bouton.click() ->
envoi formulaire -> réception nouvelle page en retour -> Mozilla redemande
la page d'origine).
J'ai pourtant procédé de la manière suivante :
Handler événement keydown:
monBouton.click();
suivi de :
event.cancelBubble = true;
if (event.stopPropagation) event.stopPropagation();
if (event.preventDefault) event.preventDefault();
event.returnValue = false;
return false;
Mozilla ne connaît pas event, mais l'événement est passé en paramètre au
gestionnaire. Il faut donc écrire dans la fonction gestionnaire :
function machinChose(e){
//Récupérer dans e l'événement (pour IE)
if(!e) e=event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
if (e.preventDefault) e.preventDefault();
e.returnValue = false;
return false;
}
Je souhaite effectuer un traitement spécial sur frappe de CTRL-R (soumission formulaire par monBouton.click()). [...] Par contre sous Mozilla, le formulaire est bien envoyé mais l'action par défaut de Mozilla (rafraîchir) s'exécute à la suite (bouton.click() -> envoi formulaire -> réception nouvelle page en retour -> Mozilla redemande la page d'origine).
J'ai pourtant procédé de la manière suivante :
Handler événement keydown: monBouton.click(); suivi de : event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); if (event.preventDefault) event.preventDefault(); event.returnValue = false; return false;
Mozilla ne connaît pas event, mais l'événement est passé en paramètre au gestionnaire. Il faut donc écrire dans la fonction gestionnaire :
function machinChose(e){ //Récupérer dans e l'événement (pour IE) if(!e) e=event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); if (e.preventDefault) e.preventDefault(); e.returnValue = false; return false; }
-- Y.D.
jf gosset
YD wrote in news:418a97bf$0$4755$:
function machinChose(e){ //Récupérer dans e l'événement (pour IE) if(!e) e=event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); if (e.preventDefault) e.preventDefault(); e.returnValue = false; return false; }
Oui, c'est ce que j'ai fait. Ce que j'appelle "event" est bien ce que j'ai récupéré dans mon handler :
function __gerer_onkey(event_) { // pour IE if (! event_ == undefined) var event = window.event // MZ Opera else event = event_
... je travaille ensuite avec event
YD <yd-news@free.fr> wrote in
news:418a97bf$0$4755$626a14ce@news.free.fr:
function machinChose(e){
//Récupérer dans e l'événement (pour IE)
if(!e) e=event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
if (e.preventDefault) e.preventDefault();
e.returnValue = false;
return false;
}
Oui, c'est ce que j'ai fait. Ce que j'appelle "event" est bien ce que j'ai
récupéré dans mon handler :
function __gerer_onkey(event_)
{
// pour IE
if (! event_ == undefined)
var event = window.event
// MZ Opera
else
event = event_
function machinChose(e){ //Récupérer dans e l'événement (pour IE) if(!e) e=event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); if (e.preventDefault) e.preventDefault(); e.returnValue = false; return false; }
Oui, c'est ce que j'ai fait. Ce que j'appelle "event" est bien ce que j'ai récupéré dans mon handler :
function __gerer_onkey(event_) { // pour IE if (! event_ == undefined) var event = window.event // MZ Opera else event = event_