VERIFIED DUPLICATE of bug 8707 Bug 8128
event.clientY is improperly implemented
https://bugs.webkit.org/show_bug.cgi?id=8128
Summary event.clientY is improperly implemented
Gérard Talbot (no longer involved)
Reported 2006-04-01 18:11:59 PST
After a few email exchanges with Beau Hartshorne, author of the article JavaScript Events January 18, 2006 http://hartshorne.ca/2006/01/18/javascript_events/ on event properties and browser support and after checking myself in an Internet Cafe with Safari 2.02 (416.13) this page http://www.gtalbot.org/Shieldhost/DHTMLSection/WindowEventsNS6.html I am convinced that Safari incorrectly implements event.clientX and event.clientY Expected results: event.pageY = event.clientY + [amount scrolled down from top of page] or, in Safari, event.pageY = event.clientY + document.body.scrollTop or event.pageY = event.clientY + window.pageYOffset or 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. event.clientX : "The horizontal coordinate at which the event occurred relative to the DOM implementation's client area." http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-MouseEvent-clientX event.clientY: "The vertical coordinate at which the event occurred relative to the DOM implementation's client area." http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-MouseEvent-clientY 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 http://www.quirksmode.org/dom/w3c_events.html#mousepos 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 . I have searched for duplicates and did not find any. I set Component to JavaScript even though this bug is not a javascript engine bug; there does not seem to be any better component.
Attachments
Gérard Talbot (no longer involved)
Comment 1 2006-04-01 18:21:35 PST
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.
David Kilzer (:ddkilzer)
Comment 2 2006-04-04 14:11:56 PDT
This is a known issue in Safari, confirming. Thanks for all the great analysis, Gérard!
Gérard Talbot (no longer involved)
Comment 4 2006-06-21 07:16:24 PDT
> This is now: > http://www.gtalbot.org/DHTMLSection/WindowEventsNS6.html Thanks for the correction. > See also Bug 8707. In my opinion, bug 8707 is exactly the same as bug 8128.
David Kilzer (:ddkilzer)
Comment 5 2006-06-24 03:22:18 PDT
(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 ***
Note You need to log in before you can comment on or make changes to this bug.