After a few email exchanges with Beau Hartshorne, author of the article
on event properties and browser support and after checking myself in an Internet Cafe with Safari 2.02 (416.13) this page
I am convinced that Safari incorrectly implements event.clientX and event.clientY
event.pageY = event.clientY + [amount scrolled down from top of page]
or, in Safari,
event.pageY = event.clientY + document.body.scrollTop
event.pageY = event.clientY + window.pageYOffset
event.pageY = event.clientY + window.scrollY
DOM 2 Events defines these event.clientX and clientY as related to the client area, not related to whole document width or to whole document height.
"The horizontal coordinate at which the event occurred relative to the DOM implementation's client area."
"The vertical coordinate at which the event occurred relative to the DOM implementation's client area."
Right now, there is also an unanimity of implementing event.clientX and event.clientY in Opera 7+, Mozilla 1.x, Seamonkey 1.x, Firefox 1.x and MSIE 6. Only Safari 2.x seems to take the x/y-coordinate of the (whole) document as the event.clientX/Y instead of the x/y-coordinate of the viewing area.
This bug is important to fix so that DHTML applications (relying on measurement, coordinating, positioning, etc.) can work reliably across browsers.
Peter-Paul Koch, at this precise url
also confirms the erroneous implementation of event.clientX/clientY in Safari: "Safari gives the mouse coordinates relative to the document which it also gives in pageX/Y."
I set version to 420+ since Beau Hartshorne data indicate that the incorrect implementation still exists in 417 / 420 .
It's possible that bug 6574 involves the improper implementation of event.clientY; the DHTML code (which uses a not-so-reliable browser detect code) may fork Safari into a code branch where event.clientY is used/queried.
This is a known issue in Safari, confirming.
Thanks for all the great analysis, Gérard!
(In reply to comment #0)
This is now:
See also Bug 8707.
> This is now:
Thanks for the correction.
> See also Bug 8707.
In my opinion, bug 8707 is exactly the same as bug 8128.
(In reply to comment #4)
> In my opinion, bug 8707 is exactly the same as bug 8128.
Marking this bug as a duplicate of Bug 8707 per reporter's comment, and since patches are being supplied to that bug.
*** This bug has been marked as a duplicate of 8707 ***