在mozilla中,事件未定义,IE一切都很好

时间:2011-07-07 05:35:52

标签: javascript events

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坐标。然而,当在其他东西中运行时,我只是得到一个警告“NaN NaN”

(我试过搜索)

2 个答案:

答案 0 :(得分:3)

对我而言,这在很多方面都是错误的。我想你想要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;
};

另请看这里

Responding to the onmousemove event outside of the browser window in IE

答案 1 :(得分:1)

这是因为大多数浏览器中的加载事件没有clientX和clientY属性。

将onload功能更改为以下内容:

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

你会看到,对于非IE浏览器,该类型是一个加载事件,但是clientX未定义。