Oto odpowiednik POJS innych odpowiedzi, które jest krzyż z powrotem do przeglądarki IE 6 (i prawdopodobnie IE 5, ale nie mam go przetestować dłużej). Brak zmiennych globalnych:
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;
});
}
}());
Ale są większe problemy. Zdarzenia kluczowe są wywoływane tylko wtedy, gdy aktywny jest element, który może odbierać dane z klawiatury (input, textarea itd.). Ponadto, jeśli użytkownik przewinie ekran bez poruszania myszą, współrzędne będą prawdopodobnie nieprawidłowe.
Alternatywnym rozwiązaniem jest użycie CSS do zastąpienia kursora niestandardową animacją.
Dziękuję za dostarczenie rozwiązania, które nie polega na jQuery: p Nienawidzę jQuery ... –
Hehe, ja też, potajemnie. :-) –
To znowu zakłada, że użytkownik porusza myszą. Co się stanie, gdy użytkownik naciśnie klawisz shift sam? – arviman