嘿伙计们,我有以下脚本,当我移动鼠标时,它给我光标位置。 这个脚本在chrome,FF甚至IE 8中运行良好(没有!doctype html )
如果将!DOCTYPE html 添加到html页面。 它给了我对象不支持此属性错误。并且下面给出的行引起了问题
document.captureEvents(Event.MOUSEMOVE);
如何使用IE 8中包含的!DOCTYPE html 解决此问题。
window.onload = init;
function init() {
if (window.Event) {
document.captureEvents(Event.MOUSEMOVE);
}
document.onmousemove = getCursorXY;
}
function getCursorXY(e) {
document.getElementById('cursorX').value = (window.Event) ? e.pageX :
event.clientX + (document.documentElement.scrollLeft ?
document.documentElement.scrollLeft : document.body.scrollLeft);
document.getElementById('cursorY').value = (window.Event) ? e.pageY : event.clientY
+ (document.documentElement.scrollTop ? document.documentElement.scrollTop :
document.body.scrollTop);
}
答案 0 :(得分:1)
我假设您收到错误,因为<!DOCTYPE html>
是HTML5的声明,而IE 8将无法处理HTML5。
您是否考虑过切换到jQuery?它将具备实现相同功能所需的所有功能。
答案 1 :(得分:0)
是的,IE9不支持。 您可以从此链接检查这些兼容性问题。 http://quirksmode.org/compatibility.html
答案 2 :(得分:-1)
使用等同于W3C DOM事件的IE DOM事件:
W3C DOM IE DOM clientX (pageX - pageXOffset) clientY (pageY - pageYOffset) offsetX pageXOffset offsetY pageYOffset
使用W3C作为默认API,通过延迟评估进行切换:
clientX || (pageX - pageXOffset);
<强>参考强>