Вот POJS-эквивалент других ответов, который является кросс-браузерным для IE 6 (и, вероятно, IE 5, но у меня его больше нет, чтобы тестировать) Даже глобальных переменных нет:
function addEvent(el, evt, fn) {
if (el.addEventListener) {
el.addEventListener(evt, fn, false);
} else if (el.attachEvent) {
el.attachEvent('on' + evt, fn);
}
}
(function () {
var x, y;
window.onload = function() {
addEvent(document.body, 'mousemove', function(e) {
// Support IE event model
e = e || window.event;
x = e.pageX || e.clientX;
y = e.pageY || e.clientY;
});
// Show coords, assume element with id "d0" exists
addEvent(document.body, 'keypress', function() {
document.getElementById('d0').innerHTML = x + ',' + y;
});
}
}());
Но есть большие проблемы. Ключевые события отправляются только в том случае, если элемент, который может принимать ввод с клавиатуры, находится в фокусе (input, textarea и т. Д.). Кроме того, если пользователь прокручивает экран, не перемещая мышь, координаты, вероятно, будут неправильными.
Альтернативное решение - использовать CSS для замены курсора на собственную анимацию.