2015-08-24 7 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> 

В коде выше я могу получить координаты у без проблем, но когда я добавляю доктайп он не показывает у координат правильно:

<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> 

EDIT

вот мой код, и он отлично работает сейчас. Спасибо всем:

<!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> 
+3

Недопустимо ваше объявление doctype. Это должно быть '' – leppie

+0

Извините за мою ошибку. На самом деле я всегда объявляю doctype правильным способом (в том числе и в моем html-файле), но здесь была просто ошибка. –

ответ

0

Try слушаем событие мыши с прослушивателя событий, например:

<!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> 
+0

Большое спасибо. проблема с этим подходом - IE8! он не поддерживает addEventListener. Чтобы решить эту проблему, я использовал attachEvent (см. Мой пост), и теперь он работает. Огромное спасибо. –

0

Во-первых, правильное заявление о DOCTYPE написав <!DOCTYPE html> вместо <DOCTYPE html>.

Во-вторых, изменить сценарий, чтобы:

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

Для параметров, передаваемых в функцию, можно отнести непосредственно, написание window.event будет, когда event будет ребенок window объекта, другими словами, глобальный объект ,

+0

Извините за мою ошибку. Вообще-то я всегда объявляю doctype правильным способом (в том числе и в моем html-файле), но здесь была просто ошибка. Кстати, я использовал «окно», потому что в случае IE8 событие не распознается, если мы не используем «окно». Огромное спасибо. –