2016-03-18 2 views
0

私はJavascript throu Youtubeを学び始めていますが、このコードを書いている間、pageXは未定義です。私は本当に助けを使うことができます。私は画面上のマウスの位置をキャプチャする関数に取り組んでいます。そして、それが唯一のフォームなのでHTMLを要求しないでください。Javascript e.pageX undefined

Javascriptを:

document.onmousemove = pozicijaMisa(); 

がそれを呼び出していない、割り当てなければなりませんと:彼らは時代遅れの慣行

あなたの問題があると教えているので、

var mie = (navigator.appName == "Microsoft Internet Explorer")?true:false; 

if (!mie) { 
    document.captureEvents(Event.MOUSEMOVE); 
    //document.captureEvents(Event.MOUSEDOWN); 
} 

document.onmousemove = pozicijaMisa(); 
//document.onmousedown = misKliknut(); 
var misKliknut = 0; 
var tipkaStisnuta = 0; 
var misX = 0; 
var misY = 0; 

function pozicijaMisa(e) { 
    if (!mie) { 
     misX = e.pageX; 
     misY = e.pageY; 
    } else { 
     misX =event.clientX + document.body.scrollLeft; 
     misY =event.clientY + document.body.scrollTop; 
    } 
    document.forma.misx.value = misX; 
    document.forma.misy.value = misY; 
    return true; 
} 
+0

は、私が代わりにその時代遅れのYouTube動画のこのようなものをお勧めします:https://www.codecademy.com/learn/javascriptは – epascarello

答えて

0

まあ、私は別のチュートリアルを見つけるだろうイベントハンドラに返す値を割り当てます。

document.onmousemove = pozicijaMisa; 
+0

e.pageX部からこの削除エラーは、今のこの行に飛び出しますコード: document.forma.misx.value = misX; java2.js:40 Uncaught TypeError:未定義のプロパティ 'value'を設定できません –

+0

エラーは何ですか?あなたはその入力があるフォームを持っていますか? – epascarello

+0

申し訳ありませんが、問題が見つかりました、私は私のフォーム名のスペルミス; Sおかげで助けて:) –

1

あなたは脆性である、navigatorを介してクライアントの検出をやっています。

クライアント検出の代わりにJavascriptで機能検出を行う方が良いでしょう。 IEを使用しているかどうかを確認する代わりに、pageXが存在するかどうかを確認してください(特にIEの新しいバージョンではpageXを使用しないため)。

document.addEventListener('mousemove', mousePosition); 
function mousePosition(e) { 
    var x = e['pageX'] || e.clientX; 
    var y = e['pageY'] || e.clientY; 
} 
関連する問題