В Mozilla событие не определено, IE все в порядке - PullRequest
1 голос
/ 07 июля 2011
var mouse = function(e){
    var x = e.pageX || (e.clientX + document.body.scrollLeft);
    var y = e.pageY || (e.clientY + document.body.scrollTop);

    alert(x + " " + y);
};
window.onload = function(e) {
    if(!e) { var e = window.event; }
    mouse(e);
};

Это работает в IE, и я получаю правильные координаты мыши x и y. Однако, когда я запускаю что-то другое, чем IE, я просто получаю предупреждение "NaN NaN"

(я пробовал искать)

Ответы [ 2 ]

3 голосов
/ 07 июля 2011

Для меня это выглядит неправильно во многих отношениях.Я думаю, что вы хотите onmousemove, а не onload - возможно, document.onmousedown - и вы не хотите предупреждать.Вместо этого измените некоторый innerHTML или document.title

Хотите ли вы щелкнуть или переместить?

document.onmousemove = function(e){
    var x = e.pageX || (e.clientX + document.body.scrollLeft);
    var y = e.pageY || (e.clientY + document.body.scrollTop);
    document.title=x + " " + y;
};

Также посмотрите здесь

Ответ на onmousemoveсобытие за пределами окна браузера в IE

1 голос
/ 07 июля 2011

Это связано с тем, что события загрузки в большинстве браузеров не имеют свойств clientX и clientY.

Измените свою функцию загрузки следующим образом:

window.onload = function (e) {
    if (!e) { 
        var e = window.event; 
    }
    alert("type is " + e.type + " clientX is " + e.clientX);
    mouse(e);
};

и вы увидите, что для браузеров, отличных от IE, тип является событием загрузки, но clientX не определен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...