Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не получается определить координаты мышки в FF (https://javascript.ru/forum/events/26164-ne-poluchaetsya-opredelit-koordinaty-myshki-v-ff.html)

Beoga 28.02.2012 17:15

Не получается определить координаты мышки в FF
 
Здравствуйте,
сразу признаюсь, что я только новичок в JS.

Вот моя проблема - мне необходимо получить координаты мышки. Сделал 2 варианта и оба не работают в FF (в опере и ИЕ работают):

первый:
var mX,mY; // глобальные переменные

function getMouseCoords()
{
  mX = window.event.x;
  mY = window.event.y; 
alert("x = " + mX + " y = " + mY);
}

<body onclick="getMouseCoords()">


----------------------------------------------------
второй:

var e;
 function mouseShowHandler(e){
	e = e || window.event

	if (e.pageX == null && e.clientX != null ) { 
		var html = document.documentElement
		var body = document.body
	
		e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
		e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
	}

	document.getElementById('mouseX').value = e.pageX
	document.getElementById('mouseY').value = e.pageY
}

Координата X:<input type="text" id="mouseX"/><br/>
Координата Y:<input type="text" id="mouseY"/><BR><BR>

<BUTTON onclick='mouseShowHandler(e)'>Хочу определить координаты мышки</BUTTON>


Прошу подсказать, что тут надо поправить.

рони 28.02.2012 17:27

Beoga,
onclick='mouseShowHandler(event)'
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Beoga 29.02.2012 11:28

Большое спасибо,

действительно, если прописать
onclick='mouseShowHandler(event)'
то в Firfox начинает работать.


Часовой пояс GMT +3, время: 09:38.