是否需要event.pageX空检查?

时间:2018-06-26 20:46:14

标签: javascript

我有此代码来获取鼠标位置。 我想知道是否真的需要:

if (event.pageX != null)

是否有event.pageXnull的情况?

我还需要event || window.event;吗?

function handleMouseMove(event) {

    event = event || window.event;

    if (event.pageX != null) {
        key = event.pageX * event.pageY;
    };
}

如果我这样重写代码怎么办?

function handleMouseMove(event) {
    key = event.pageX * event.pageY;      
}

2 个答案:

答案 0 :(得分:1)

如果由于某种原因,侦听器在窗口完成加载之前触发,则event.pageX将是null,并且该函数将返回错误。尽管您使用的是鼠标事件监听器,但不太可能在窗口的onload函数之前触发,但是最好检查pageX是否为空。

底线:安全胜过遗憾。

答案 1 :(得分:1)

我认为null检查是不必要的。正如阿萨菲所说,pageX在初始渲染时仅null。由于pageX被包装在一个函数中,因此pageXnull时不太可能被调用。 Here's是Mozilla文档中的直观示例。我们还希望保留||语句以支持较旧的浏览器。

您的总体代码可以写为:

function handleMouseMove(event) {
    event = event || window.event;
    key = event.pageX * event.pageY;      
}