Javascript 在IE8和以前的版本中,mousemove是如何处理的?

Javascript 在IE8和以前的版本中,mousemove是如何处理的?,javascript,internet-explorer,events,internet-explorer-8,event-handling,Javascript,Internet Explorer,Events,Internet Explorer 8,Event Handling,已在IE8上为document而不是window处理mousemove事件,但我目前有: try { document.onmousemove = drag.on_mouse_move; } catch(error) { if (typeof document.attachEvent !== undefined) { document.attachEve

已在IE8上为document而不是window处理mousemove事件,但我目前有:

    try
        {
        document.onmousemove = drag.on_mouse_move;
        }
    catch(error)
        {
        if (typeof document.attachEvent !== undefined)
            {
            document.attachEvent("onmousemove", drag.on_mouse_move);
            }
        }
第一条实数语句在IE8中抛出错误,最后一条语句也是如此。后一个错误声称类型不匹配;前一个错误抛出“未实现”


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

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

if (document.attachEvent)
{
    document.attachEvent('onmousemove',function(e)
    {
        e = e || window.event;
        alert(e.type);
    });
}
它就像一个符咒。提示:正常的try-catch序列是:

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用于委托,在大多数情况下,这是优于直接绑定的

谢天谢地,你不应该支持IE6,即使微软也放弃了它。我刚刚在IE8中尝试了以下代码:

if (document.attachEvent)
{
    document.attachEvent('onmousemove',function(e)
    {
        e = e || window.event;
        alert(e.type);
    });
}
它就像一个符咒。提示:正常的try-catch序列是:

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用于委托,在大多数情况下,这是优于直接绑定的

也许你可以做一个更好的选择?当jQuery为你处理跨浏览器问题时,为什么要处理这个问题,特别是当你处理的是旧浏览器的时候!!令人悲哀的是,纯JS在支持“只使用jQuery”时迷失了方向。@frenchie:这已经开始改变,我注意到X或Y的第一个问题不适用于IE@MalSu:我记得在jQuery之前为IE5和Netscape 4开发;这不是幸福。对于DOM操作,纯JS并不比jQuery好,但jQuery比纯JS好。看看这个问题,告诉我为什么人们仍然试图重新创建jQuery已经做过的事情??例如,这里我们正在重新创建$.mousemove();为什么?什么好处?????也许你可以做一个?当jQuery为你处理跨浏览器问题时,为什么要处理这个问题,特别是当你处理的是旧浏览器的时候!!令人悲哀的是,纯JS在支持“只使用jQuery”时迷失了方向。@frenchie:这已经开始改变,我注意到X或Y的第一个问题不适用于IE@MalSu:我记得在jQuery之前为IE5和Netscape 4开发;这不是幸福。对于DOM操作,纯JS并不比jQuery好,但jQuery比纯JS好。看看这个问题,告诉我为什么人们仍然试图重新创建jQuery已经做过的事情??例如,这里我们正在重新创建$.mousemove();为什么?有什么好处?????