Ultima actualizare pe 22 Februarie 2009.
Vezi sectiunea 7B a cartii.
Documentatie Mozilla. Asigurati-va ca studiati si "Alte evenimente".
Intotdeauna Safari a consultat tabelele mele de compatibilitate pentru mai multe informatii despre JavaScript, deci in acest moment cititi documentatia Safari.
Documentatie Opera; din pacate evenimentele sunt insumate pe baza de tag.
Specificatia W3C DOM Events. Din pacate nu se acorda atentie mereu implementarii curente a evenimentelor din browsere.
Pe aceasta pagina am oferit o privire de ansamblu asupra compatibilitatii evenimentelor de browser.
Presupun ca stiti cele trei modele de inregistrare de evenimente(traditional, W3C si Microsoft) cat si barbotarea evenimentelor si capturarea.
Mi-am petrecut majoritatea timpului pe evenimentele cross-browser; linkurile din primul tabel de compatibilitate duc catre mai multe tabele de compatibilitate cu informatii detaliate despre aceste evenimente.
Am testat doar suportul de baza al browserelor pentru evenimentele Microsoft si W3C fara a intra prea adanc in detalii.
Definitie: evenimentele cross-browser sunt suportate de IE si cel putin inca doua din urmatoarele trei browsere: Firefox, Safari, Opera.
Toate bug-urile notate in tabelul de mai jos sunt explicate in paginile detaliate. Nu am testat inca evenimentele load si unload inca; vor fi adaugate in tabel mai tarziu.
Vezi articolul de blog iPhone Events pentru mai multe informatii despre evenimente pe iPhone.
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
cand un element isi pierde focusul. |
da | prea multe | da | Incom |
aproape | Incom |
aproape | prea multe | Incom |
||||||
|
|||||||||||||||
|
cand valoarea unui camp de form se schimba. |
cu bug-uri | da | da | da | Incom |
Incom |
|||||||||
|
|||||||||||||||
|
cand un eveniment mousedown si mouseup are loc pe acelasi element SAU un element este activat de tastatura. |
da | da | da | da | da | da | |||||||||
|
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
cand un utilizator da click-dreapta pentru meniul de context. |
da | cu bug-uri | da | cu bug-uri | da | netest |
da | nu | nu | ||||||
|
Prevenirea implicitului (i.e. prevenirea aparitiei meniului de context) este tot scopul acestui eveniment.
|
|||||||||||||||
|
cand textul este copiat. |
da | nu | cu bug-uri | da | netest |
da | nu | nu | |||||||
|
|||||||||||||||
|
cand textul este taiat. |
da | nu | cu bug-uri | da | netest |
da | nu | nu | |||||||
|
|||||||||||||||
|
cand doua evenimente click au loc pe acelasi element intr-un interval de timp rezonabil. |
da | da | da | nu | da | da | nu | ||||||||
|
cand browserul intalneste o eroare JavaScript pe un fisier de imagine inexistent. |
aproape | aproape | Incom |
Incom |
Incom |
Incom |
|||||||||
|
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
cand un element primeste focus. |
da | prea multe | Incom |
aproape | Incom |
aproape | prea multe | Incom |
|||||||
|
|||||||||||||||
|
cand un utilizator tine o tasta apasata. |
da | da | da | da | minim | Incom |
|||||||||
|
Evenimentul ar trebui sa fie activat continuu atata timp cat utilizatorul tine tasta apasata.
|
|||||||||||||||
|
cand apasarea unei taste duce catre un caracter care este adaugat unui element HTML. |
da | prea multe | prea multe | da | nu | da | prea multe | prea multe | |||||||
Acest eveniment ar trebui sa se activeze numai daca o apasare de tasta duce la un caracter care este adaugat unui element HTML cum ar fi text input. Nu ar trebui sa se declanseze cand utilizatorul apasa taste cum ar fi tastele sageti din care nu rezulta nici un caracter. Evenimentul ar trebui sa fie activat continuu atata timp cat utilizatorul tine acea tasta apasata.
|
|||||||||||||||
|
cand un utilizator elibereaza o tasta. |
da | da | da | da | da | da | |||||||||
|
Acest eveniment se activeaza dupa ce tasta apasata a fost procesata; de exemplu dupa ce un caracter a fost adaugat unui text input. Nu este posibil sa anulam actiunea implicita pentru ca acea actiune a avut deja loc. Acest eveniment nu ar trebui sa se repete. |
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
cand un utilizator tine apasat un buton de mouse. |
da | da | da | da | da | da | |||||||||
|
|||||||||||||||
|
cand mouse-ul este mutat. | da | da | da | Alter |
da | da | da | ||||||||
|
|||||||||||||||
|
cand mouse-ul paraseste un element. |
da | da | da | Alter |
da | da | da | ||||||||
|
|||||||||||||||
|
cand mouse-ul este deasupra unui element. |
da | da | da | Alter |
da | da | da | ||||||||
|
|||||||||||||||
|
cand un utilizator elibereaza butonul unui mouse. |
da | da | da | da | da | da | |||||||||
|
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
cand un utilizator foloseste rotita unui mouse. nutati ca pagina nu trebuie derulata pentru declansarea evenimentului. |
nu | da | cu bug-uri | nu | da | Alter |
da | da | nu | ||||||
|
Este posibil sa anulam actiunea implicita pentru ca elementul sa nu se deruleze.
|
|||||||||||||||
|
cand textul este lipit. |
da | nu | cu bug-uri | da | netest |
da | nu | nu | |||||||
|
|||||||||||||||
|
cand utilizatorul reseteaza un form. |
da | da | da | da | da | da | |||||||||
|
cand fereastra este redimensionata. |
da | da | da | cu bug-uri | da | da | da | ||||||||
|
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
cand ceva este derulat. |
da | da | cu bug-uri | da | cu bug-uri | da | nu | ||||||||
|
|||||||||||||||
|
cand un utilizator selecteaza text dintr-un camp text input. |
da | da | da | netest |
da | da | nu | ||||||||
|
In ceea ce ma priveste acest eveniment ar trebui sa se activeze si cand utilizatorul selecteaza text din orice element. Nici un browser nu este de acord se pare. |
|||||||||||||||
|
cand un utilizator submite un form. |
da | da | da | da | da | da | |||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
Evenimentele de mai jos nu functioneaza cu inregistrarea evenimentelor traditionale. Trebuie sa folositi addEventListener
pentru a captura aceste evenimente.
Nu inteleg de ce este asa; incalca vechea regula de baza care afirma ca orice eveniment este disponibil in orice model de inregistrare.
Numele evenimentelor asemenatoare camelcase sunt necesare. Si aici, o regula veche este incalcata: toate celelalte nume de evenimente sunt strict cu litere mici.
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
DOMActivate
Ar trebui sa se declanseze cand un element este activat. |
nu | da | inco |
nu | inco |
||||||||||
|
Un link este activat cand utilizatorul il urmeaza. Un checkbox sau radio este activat cand este bifat sau debifat.
|
|||||||||||||||
|
DOMAttrModified
Un atribut din ramificatia DOM al elementului care a fost schimbat. |
nu | da | nu | nu | da | nu | |||||||||
|
|||||||||||||||
|
DOMCharacter
Textul din ramificatia DOM a elementului care a fost schimbat. |
nu | Incom |
Incom |
da | da | Incom |
Incom |
||||||||
|
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
DOMFocusIn
Ca focus, dar barboteaza. |
nu | nu | nu | Incom |
aproape | da | da | ||||||||
|
|||||||||||||||
|
DOMFocusOut
Ca blur, dar barboteaza. |
nu | nu | nu | Incom |
aproape | da | da | ||||||||
|
|||||||||||||||
|
DOMMouseScroll
cand utilizatorul foloseste rotita mouse-ului. |
nu | da | nu | netest |
nu | nu | nu | ||||||||
|
Echivalentul mousewheel. |
|||||||||||||||
|
DOMnodeInserted
Un nou nod a fost introdus in ramificatia DOM a elementului. |
nu | da | da | da | da | Incom |
|||||||||
|
Daca schimbam
|
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
DOMnodeRemoved
Un nod a fost eliminat din ramificatia DOM a elementului. |
nu | da | prea multe | prea multe | da | Incom |
|||||||||
|
Daca schimbam
|
|||||||||||||||
|
DOMSubtreeModified
Cel mai generic eveniment: ceva din ramificatia DOM a elementului s-a schimbat. |
nu | nu | da | da | da | nu | da | ||||||||
|
textInput
Echivalentul apasarii unei taste. |
nu | nu | da | da | nu | nu | |||||||||
Acesta este un eveniment DOM, in ciuda faptului ca lipseste "DOM" in nume. De aceea nu functioneaza cu inregistrarea evenimentelor traditionale. |
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
activate
In ciuda numelui acest eveniment este un echivalent al focusin. |
da | nu | nu | nu | nu | nu | |||||||||
|
beforecopy
|
da | nu | nu | da | netest |
da | nu | nu | |||||||
|
Nu inteleg scopul real al acestor evenimente. Totusi, cand un utilizator cheama un meniu de de context care contine actiuni cut, copy si paste , beforecut, beforecopy si beforepaste se activeaza toate. |
|||||||||||||||
|
beforecut
|
da | nu | nu | da | netest |
da | nu | nu | |||||||
|
Vezi beforecopy. |
|||||||||||||||
|
beforepaste
|
da | nu | nu | Incom |
netest |
Incom |
nu | nu | |||||||
|
Vezi beforecopy.
|
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
deactivate
In ciuda numelui acest eveniment este un echivalent al focusout. |
da | nu | nu | nu | nu | nu | |||||||||
|
focusin
Ca focus, dar barboteaza. |
nu | da | nu | nu | nu | nu | nu | ||||||||
Nu este disponibil in fereastra. |
|||||||||||||||
|
focusout
Ca blur, dar barboteaza. |
nu | da | nu | nu | nu | nu | nu | ||||||||
Nu este disponibil in fereastra. |
|||||||||||||||
|
hashchange
cand valoarea hash a locatiei se schimba. |
nu | da | nu | nu | nu | nu | nu | ||||||||
|
Acest eveniment poate fi interesant pentru monitorizarea Inapoi/Inainte in interfetele Ajax. |
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |
|
mouseenter
cand mouse-ul intra pe un element, dar nu barboteaza. MULT mai folositor decat mouseover. Hai, Mozilla. Hai, Apple. Hai, Google. Hai, Opera. Hai, KDE. |
da | nu | nu | nu | nu | nu | |||||||||
|
CELELALTE BROWSERE AR TREBUI SA IMPLEMENTEZE ACESTE EVENIMENTE CAT MAI CURsi POSIBIL. (Da, stiu ca strig, dar o zic din 2003 si nimeni nu a fost atent la ce am zis.) Mouseover si mouseout se activeaza de asemenea cand utilizatorul pune mouse-ul pe un element copil si apoi il ia de pe elementul pe care s-au inregistrat evenimentele. Mouseenter si mouseleave nu o fac. Deci, ele sunt echivalentele adevarate ale CSS Odata ce aceste evenimente sunt suportate de toate browserele, crearea meniurilor dropdown vor devenii ca o plimbare in parc. Este vina Firefox, Safari si Opera ca inca trebuie sa pierdem ore intregi pentru a descoperii evenimente mouseover si mouseout importante si neimportante. Daca am fi avut doar mouseenter si mouseleave, toate problemele noastre ar fi rezolvate. |
|||||||||||||||
|
mouseleave
cand mouse-ul paraseste un element, dar nu barboteaza. MULT mai folositor decat mouseout. |
da | nu | nu | nu | nu | nu | |||||||||
|
Vezi remarci mouseenter. |
|||||||||||||||
| Event | IE 5.5 | IE 6 | IE 7 | IE8rc1 as IE7 | IE8rc1 as IE8 | FF 2.0 | FF 3.0 | FF 3.1b2 | Saf 3.0 Win | Saf 3.1 Win | iPhone 3G | Chrome 1.0 | Opera 9.62 | Opera 10a | Konqueror 3.5.7 |