JavaScriptでマウスの絶対座標を取得する
Firefox2、IE6、IE7、Safari、Operaのそれぞれの最新版で試したところうまく動きました。
function pos(event){ if (!event) var event=window.event; if (!event.pageX) event.pageX = event.clientX + document.body.scrollLeft; if (!event.pageY) event.pageY = event.clientY + document.body.scrollTop; alert("x:" + event.pageX + " y:" + event.pageY); }
実行するHTMLは以下のような感じ。
<a href="javascript:void(0);" onclick="pos(event)">マウス座標を得る</a>
ifでやっていることはIE対策です。
IEだとイベントハンドラで扱うイベントはwindow.eventになるので、posの引数のイベントはnullになってしまいます。
そのため、!eventでチェックしてwindow.eventを入れています。
event.clientXに、document.body.scrollLeftを足しているのはスクロールしていた場合にスクロール分の座標を足すためです。