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

标签 javascript internet-explorer events internet-explorer-8 event-handling

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 用于委托(delegate),在大多数情况下优于直接绑定(bind)。

关于javascript - mousemove 在 IE8 和以前的版本中是如何处理的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302573/

相关文章:

javascript - 如何更新子堆栈?

javascript - 如何仅在第一页(div)隐藏 "previous"按钮并在最后一页(div)隐藏 "next button"

android - 如何在 Android 中为整个 fragment 绑定(bind)输入更改事件?

winforms - 是否可以避免 Winform 上的多次按钮点击?

javascript - 条形图的dimple js x轴日期问题

javascript - jQuery UI 对话框仅打开一次

html - 跨多个 IE 版本测试网站

javascript - IE 脚本 : Remove option node from a select multiple when option is clicked

html - IE 中的下拉列表会干扰 CSS 悬停样式

javascript - 向下滚动页面事件