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(/ 7/6)中注册mousemove事件侦听器?
最佳答案
您不应该支持IE6,即使MS放弃了该浏览器,谢天谢地。我刚刚在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用于委派,在大多数情况下,它比直接绑定更可取。
关于javascript - 在IE8及更高版本中如何处理mousemove?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12302573/