Evènements keypress keydown
Bonjour,
Mon client demande que certaines fonctions implémentées - et qui fonctionnent déjà sur le site en exploitation - puissent être appelées par raccourcis claviers.
Les touches F8, F9 et F10 sont d'ailleurs visées.
J'ai donc ajouté dans le code :
Code:
cible.addEventListener("keypress",lesKeys,false);
en dessous de
Code:
cible.addEventListener("click",lesKeys,false);
Résultat : NIET :cry:
Evidemment, le code ci-dessus est raccourci ; il comprend en réalité la possibilité IE :
Code:
obj.attachEvent(....)
Puisque cela ne fonctionne pas, je suis revenu au DOM antérieur :
Code:
cible.onkeypress = function(){blabla... ;};
Résultat : NIET
En fin le code de test le plus proche du développement réel :
Code:
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 36 37 38
| (function(){
if(window.addEventListener) window.addEventListener("load", init, false);
else if (window.attachEvent) window.attachEvent("onload", init);
function init(){
var ob = new obj();
}
function obj() {
var this4Event = this;//fermeture
this.name='';
this.container = document.getElementById('Bob');
this.container.innerHTML="Bob";
this.alertName = function () {
alert( this.name);
}
this.eventclickhandler = function(e) {
alert(e.type);
this4Event.mess('Bien');
alert (this4Event.name);
};
addEvent(this.container,"click",this.eventclickhandler) ;
addEvent(this.container,"keypress",this.eventclickhandler) ;
addEvent(this.container,"keydown",this.eventclickhandler) ;
}
obj.prototype.mess = function(mes){
this.name = mes;
};
function addEvent(obj, evType, fn) {
if (obj.addEventListener){//Mozilla firefox
.
obj.addEventListener(evType, fn, false);
return true;
}
else if (obj.attachEvent){//IE
var r = obj.attachEvent("on"+evType, fn);
return r;
}
}
})(); |
Fonctionne très bien pour l'évènement "click" seulement :(
J'imagine que vous avez déjà goûté à ces joyeusetés... : des solutions ?
Merci