bnielsen@daimi.au.dk (Kai Birger Nielsen) writes:
> Jeg blev lige bidt af "det validerer, så er den hellige grav
> velforvaret". Er der nogen, der kan finde et link til et
> sted, hvor der står at det hedder event.x i html 4.01 og
> event.layerX i xml 1.0 strict.
Næppe, da begge dele er Javascript/DOM og ikke HTML eller XML. :)
Det der er af officielle definitioner om det, er W3C's DOM (Document
Object Model). I dette tilfælde nok Events DOM'en, Javascript-interfacet:
<URL:
http://www.w3.org/TR/DOM-Level-2-Events/ecma-script-binding.html>
I en muse-event hedder det enten ".screenX" eller ".clientX".
Det du bruger er altså ikke W3C's DOM.
Både Netscape og Microsoft har deres egne DOM'er, begge baseret på
Netscape 3 med udvidelser. Mozilla forsøger at implementere W3C's DOM.
Microsoft lever som sædvanligt i deres egen verden.
Mozillas DOM generelt: <URL:
http://www.mozilla.org/docs/dom/>
Specifik DOM-reference: <URL:
http://www.mozilla.org/docs/dom/domref/>
Events: <URL:
http://www.mozilla.org/docs/dom/domref/dom_event_ref.html#998197>
Mozilla har "screenX" og "clientX", men har også stadig
Netscape-opfindelserne "pageX" og "layerX". <rant on> De bruger vist
"layer" om ethvert absolut placeret element. Jeg synes det er
forvirrende, da de ikke længere bruger <layer>-tagget. Der er ikke
noget i html der hedder "layer"! <rant off>
Microsoft har også en online DOM/JScript-reference. Event-objektet
er beskrevet på
<URL:
http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_event.asp>
De har "clientX", "offsetX", "screenX" og "x".
Så er der Netscape selv, som også har en mening om "event"-objekter. Det
gælde nok Netscape 4:
<URL:
http://developer.netscape.com/docs/manuals/js/client/jsref/index.html>
De har "layerX", "pageX", "screenX" og "x".
Jeg kan ikke få fat i siden der siger hvad Opera 7 forstår
(<URL:
http://www.opera.com/docs/specs/>), men det ser ud til at være
"clientX", "pageX", "screenX" og "x".
Jeg *tror* at "x" og "clientX" er det samme: offset i forhold til
viewporten på browseren. "pageX" er offset i forhold til øverste
venstre hjørne af siden, der tages altså hensyn til om man har
scrollet siden. "screenX" er i forhold til skærmen, og ganske
irrelevant for en browser (lige som skærmstørrelsen). Jeg gætter på at
"layerX" er i forhold til nærmeste omkrandsende positionerede
elemement, og Microsofts "offsetX" er i forhold til det element man
faktisk klikkede på ("event.target" i standarden, "event.srcObject" i
Microsofts verden).
> Og ja, det er sikkert lidt offtopic her, men så alligevel ikke.
Det er det, så jeg XFUTter til d.e.i.w.clientside.
Generelt er DOM-programmering et minefelt af inkompatible
implementationer af noget andet end standarden. Mozilla styrer! Opera
er godt med! IE begyder at have det basale, men mangler stadig en del,
og jeg synes ikke det opvejer det at de har deres egne alternativer.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
Art D'HTML: <URL:
http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'