2015-08-24 72 views
0

我想顯示在一個頁面中的鼠標座標,當我不聲明DOCTYPE它的作品,但是當我聲明DOCTYPE它不!你能幫我解決嗎?這裏是我的代碼:JavaScript的鼠標座標和聲明DOCTYPE

<html> 
<head> 
    <title>problem</title> 
</head> 
<body> 
    text... 
<div id="show"></div> 
<script> 
    document.body.onmousemove = function(event) { 
     document.body.innerHTML = "X: " + window.event.clientX + "<br />" + "Y: " + window.event.clientY; 
    } 
</script> 
</body> 
</html> 

在上面的代碼,我可以得到Y中沒有問題的座標,但是當我添加一個DOCTYPE它並不顯示Y座標正確:

<DOCTYPE html> 
<html> 
<head> 
    <title>problem</title> 
</head> 
<body> 
    text... 
<div id="show"></div> 
<script> 
    document.body.onmousemove = function(event) { 
     document.body.innerHTML = "X: " + window.event.clientX + "<br />" + "Y: " + window.event.clientY; 
    } 
</script> 
</body> 
</html> 

編輯

這裏是我的代碼,它現在完美。謝謝大家:寫<!DOCTYPE html>代替<DOCTYPE html>

<!DOCTYPE html> 
<html> 
    <head> 
    <title>problem</title> 
    </head> 
    <body> 
    text... 
    <div id="show"></div> 
    <script> 
    document.addEventListener('mousemove', function(event) { 
     document.body.innerHTML = "X: " + window.event.clientX + "<br />" + "Y: " + window.event.clientY; 
    }); 
    </script> 
    </body> 
</html> 
+3

您的文檔類型聲明無效。它應該是'<!DOCTYPE html>' – leppie

+0

對不起我的錯誤,其實我總是以正確的方式聲明doctype(包括在我的html文件中),但這裏只是一個錯誤。 –

回答

0

嘗試做事件偵聽器監聽鼠標事件,像這樣。

其次,改變你的腳本:

document.addEventListener('mousemove', function(event) { 
    document.body.innerHTML = "X: " + event.clientX + "<br />" + "Y: " + event.clientY; 
}); 

,用於在功能傳遞的參數,可以直接引用,寫window.event是當eventwindow對象的孩子,換句話說,一個全局對象。

+0

非常感謝。這種方法的問題是IE8!它不支持addEventListener。爲了解決這個問題,我使用了attachEvent(見我的文章),現在它工作。非常感謝。 –

0

首先正確的的DOCTYPE聲明:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>problem</title> 
    </head> 
    <body> 
    text... 
    <div id="show"></div> 
    <script> 
    if (document.addEventListener) { 
     document.addEventListener('mousemove', function(event) { 
     document.body.innerHTML = "X: " + window.event.clientX + "<br />" + "Y: " + window.event.clientY; 
     }); 
    } else { 
     document.attachEvent("onmousemove", function(event) { 
     document.body.innerHTML = "X: " + window.event.clientX + "<br />" + "Y: " + window.event.clientY; 
     }); 

} 
    </script> 
    </body> 
</html> 
+0

對不起,我實際上總是以正確的方式聲明doctype(包括在我的html文件中),但這只是一個錯誤。順便說一句,我用「窗口」,因爲在IE8事件不被識別,如果我們不使用「窗口」。非常感謝。 –