5

IE8でイベントの座標を取得する方法が見つからないようで、ちょうど... pageX undefined、clientX undefinedなどのエラーが発生します。他のブラウザでも動作します。Javascript:IE8イベント座標

これは私がやろうとしたものである。

document.onmousemove=setcoord; 

function setcoord(e){ 
    var xxcoord = e.pageX||(e.clientX+document.body.scrollLeft); 
    var yycoord = e.pageY||(e.clientY+document.body.scrollTop); 
} 

は、マウスの位置を取得するための任意の回避策があります。..

答えて

7

以下は動作するようです?。私はそれがこれを行う適切な方法であるとは分かりません:

var x=event.clientX; 
var y=event.clientY; 
+2

これは正しいです。説明:以前のIE 9では、MicrosoftはW3 DOMイベントモデルを実装していませんでした。代わりに、彼らは独自のイベントモデルを使用しました。イベントリスナーは引数を受け取りません。イベント関連のプロパティはすべて、グローバルな 'event'オブジェクトで定義されます。一般的な解決策は 'e = e ||を追加することです。イベントリスナーの最上部にあるwindow.event; –

+2

ありがとう、私は今それを得ると思いますが、e.clientXはスクロールを考慮せず、document.body.scrollLeftはIEでも動作しないようですが...私は絶対座標ではなくビューポートに関連するウィンドウをスクロールします。 – Anonymous

+0

aight、documentElementが動作するようです。 :)編集:**しかし、それは今クロームでは動作しません...ああ、noes .. – Anonymous