如何在IE8及以前版本中处理mousemove

How is mousemove handled in IE8 and previous?

本文关键字:版本 处理 mousemove IE8      更新时间:2023-09-26

http://www.quirksmode.org/dom/events/mousemove.html在IE8上为文档处理了mousemove事件,但没有为窗口处理,但我目前有:

    try
        {
        document.onmousemove = drag.on_mouse_move;
        }
    catch(error)
        {
        if (typeof document.attachEvent !== undefined)
            {
            document.attachEvent("onmousemove", drag.on_mouse_move);
            }
        }

第一个实际语句在IE8中抛出一个错误,最后一个语句也是如此。后一个错误声称类型不匹配;前一个错误抛出"未实现"

如何/应该在IE8中注册mousemove事件侦听器(/7/6)?

你不应该支持IE6,即使是MS也放弃了浏览器,感谢上帝。我刚刚在IE8中尝试了以下代码:

if (document.attachEvent)
{
    document.attachEvent('onmousemove',function(e)
    {
        e = e || window.event;
        alert(e.type);
    });
}

它就像一种魅力。只是一个提示:正常的尝试捕获序列是:

try
{//FF, webkit, opera, IE>8
    document.addEventListener('mousemove',function(){},false);
}
catch (e)
{//IE >6 (7?)
    document.attachEvent('onmousemove',function(){});
}
finally
{//browsers that must die
    try
    {
        document.onmousemove = function(){};
    }
    catch(die)
    {
        alert('Use a decent browser.');
        location.href = 'http://www.mozilla.org/en-US/firefox/new/';
    }
}

attachEvent用于委派,在大多数情况下,这比直接绑定更可取。