mot cle this et internet explorer

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mot cle this et internet explorer

par ours-blanc- » 19 nov. 2007, 15:42

En javascript une fonction c'est un objet...
ok je comprends mieux, merci.

par Tracker » 19 nov. 2007, 13:32

bon en fait c'est tout simple avec l'objet event mais y'a un truc que je comprend pas, voici un code qui ressemble:

Code : Tout sélectionner

//cette méthode ajoute un ecouteur à un element function addListener(element, baseName, handler){ if (element.addEventListener) element.addEventListener(baseName, handler, false) else if (element.attachEvent) element.attachEvent('on'+baseName,handler); } function load() { addListener(document.getElementById('nouvelleFiche'),'submit',verification); } function verification(event) { alert('yeaaaaaaaah'); if(event.target) event.preventDefault(); else window.event.returnValue=false; } //ajout des écouteurs au démarrage addListener(window,'load',load);
la je vous ai tout mis.

pouvez vous m'expliquer comment il sait que le paramètre "event" passé à la fonction verification est un événement?
J'ai trouvé ce code tout prête mais je ne m'explique pas cette "apparition" de l'objet event parceque j'ai essaye avec un autre nom que event et ca marche aussi.

je comprends que la ligne:

Code : Tout sélectionner

addListener(document.getElementById('nouvelleFiche'),'submit',verification);
appelle par reference la fonction verification mais apres je comprend pas d'ou vient le paramètre event, est ce un comportement par défaut de javascript?

merci

bonne journee
En réalité, y'a pas grand chose à comprendre,
element.addEventListener (FF) et element.attachEvent (IE) invokent ton handler en passant un objet event...

Sinon, addListener n'appelle pas, comme tu le penses, par reference la fonction verification, elle passe simplement une référence de ta fonction aux méthode précédement citée, permettant ensuite lors de l'action utilisateur qu'elle soit invokée. En javascript une fonction c'est un objet...


Tracker.

par ours-blanc- » 19 nov. 2007, 13:25

pfff j'ai eu ma réponse ici:
http://www.gchagnon.fr/cours/dhtml/even ... objetevent

un cours très bien fait d'ailleurs!
à tout appel de gestionnaire d'événement, un objet de type événement est passé en argument à la fonction. Plusieurs propriétés décrivent cet objet et son état. On peut les utiliser, notamment, afin de déterminer d'où est issu l'événement, et à quelle étape précise de son "voyage" il en est (montée ou descente...). Il est également possible de l'intercepter, et de faire en sorte qu'il cesse sa propagation.
bon ben peut être le lien sur les evenements servira à quelqu'un..

toutefois si vous pouvez témoigner de comment vous gérer les evenements javascript chez vous ca m'interesse...

par ours-blanc- » 19 nov. 2007, 13:20

bon en fait c'est tout simple avec l'objet event mais y'a un truc que je comprend pas, voici un code qui ressemble:

Code : Tout sélectionner

//cette méthode ajoute un ecouteur à un element function addListener(element, baseName, handler){ if (element.addEventListener) element.addEventListener(baseName, handler, false) else if (element.attachEvent) element.attachEvent('on'+baseName,handler); } function load() { addListener(document.getElementById('nouvelleFiche'),'submit',verification); } function verification(event) { alert('yeaaaaaaaah'); if(event.target) event.preventDefault(); else window.event.returnValue=false; } //ajout des écouteurs au démarrage addListener(window,'load',load);
la je vous ai tout mis.

pouvez vous m'expliquer comment il sait que le paramètre "event" passé à la fonction verification est un événement?
J'ai trouvé ce code tout prête mais je ne m'explique pas cette "apparition" de l'objet event parceque j'ai essaye avec un autre nom que event et ca marche aussi.

je comprends que la ligne:

Code : Tout sélectionner

addListener(document.getElementById('nouvelleFiche'),'submit',verification);
appelle par reference la fonction verification mais apres je comprend pas d'ou vient le paramètre event, est ce un comportement par défaut de javascript?

merci

bonne journee

mot cle this et internet explorer

par ours-blanc- » 19 nov. 2007, 11:27

Bonjour, j'aurais besoin d'une petite précision concernant l'emploi du mot clé this.
voila mon code:

Code : Tout sélectionner

function addListener(element, baseName, handler){ if (element.addEventListener) element.addEventListener(baseName, handler, false) else if (element.attachEvent) element.attachEvent('on'+baseName,handler); }//addListener //associe les ecouteurs à un id et à un evenement. function traitement(){ //ecouteurs sur les liens "enlever une fontion" var cpt = 1; var idLien = 'enlever'+cpt; var lien = document.getElementById(idLien); while (lien) { addListener(lien,'click',enleverServiceFonction); cpt++; idLien = 'enlever'+cpt; lien = document.getElementById(idLien); } }
J'attribue dynamiquement un ecouteur d'evenement sur une liste de lien dont l'id est de la forme "enlever"+i

dans ma fonction enleverserviceFonction appellee sur chaque evenement je cherche à récupérer l'id du lien qui a été cliqué.
sous firefox je fais this.id et c'est ok mais ca ne marche pas sous IE.

J'ai entendu parler de l'objet evenement et de sa propriete target, je vais essayer ca parceque j'ai des infos dessus poru l'isntant mais ce que j'aimerais savoir c'est si je me trope de syntaxe avec this.id ou bien si c'est une incompatibilité IE?

merci!

ps: si vous pouvez me dire comment vous faites pour faire du js non obstrusif (soit avec dom 2 soit sans dom 2) parceque je debute la dedans et je sais pas ce qui est le plus efficace et le plus compatible. merci :)