К сожалению, нет способа получить местоположение курсора мыши вне обработчика событий. Один из вариантов, который у вас есть, - это зарегистрировать обработчик события для события onmousemove и сохранить координаты в глобальной переменной (ish).
Используя простой старый javascript, следующий код должен справиться с Safari и FF3.
var coords = {x: NaN, y: NaN};
...
if (coords.x === ... && coords.y === ...) {
/* insert your magic here */
}
...
window.addEventListener('mousemove', function(e) {
coords.x = e.clientX;
coords.y = e.clientY;
}, true);
Короче говоря, прослушиватель событий (обработчик) зарегистрирован для события "onmousemove". Когда происходит событие, анонимная функция вызывается вместе с событием. Событие содержит несколько свойств, два из которых - clientX и clientY. Это координаты мыши относительно окна, а не верхней части документа. Эти координаты помещаются в переменную, доступную как для обработчика, так и для кода, которому нужны координаты. Это может быть глобальная или какая-то закрытая переменная.
Следует отметить, что обычно реализации javascript в браузерах являются однопоточными. Проще говоря, это означает, что значения, содержащиеся в переменной coords
, могут не всегда быть актуальными, если мышь перемещалась с момента последнего вызова обработчика события.