Получение кординат - кроссбраузерность
function GetMouseX(e) { if (e.pageX) return e.pageX; else if (e.clientX) return e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); else return null; } Данный код не работает в IE 6, хотя как раз проверка на IE осуществляется во второй строчке... В чем может быть проблема? Спасибо |
function GetMouseX(e) // получить объект событие для IE e = e || window.event; // добавить pageX для IE 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); } return e.pageX; } function GetMouseY(e) // получить объект событие для IE e = e || window.event; // добавить pageY для IE if ( e.pageY == null && e.clientY != null ) { var html = document.documentElement; var body = document.body; e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0); } return e.pageY; } |
Спасибо, теперь все работает, но хотелось бы понять почему ваш код работает, а мой нет...
Кстати свой код я пытался и так записать: function GetMouseX(e) { if (window.Event) { document.captureEvents(Event.MOUSEMOVE); return e.pageX;} else if (e.clientX) return e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); else return null; } все равно не работало. Ведь фактически у меня код тоже самое что и у вас, только пропущен нюанс, а какой? |
Цитата:
function GetMouseX(e) { if (e.pageX) return e.pageX; else if (e.clientX) // вот здесь у вас возникает ошибка, так как объект e равен undefined return e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); else return null; }а нужно делать примерно так: function GetMouseX(e) { e = e || window.event; if (e.pageX) return e.pageX; else if (e.clientX) return e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); else return null; } |
Спасибо, карму я вам добавил за помощь
|
Часовой пояс GMT +3, время: 17:02. |