我有一个网页,当用户将鼠标移出页面时会显示一条消息。除 Internet Explorer 外,所有浏览器均可完美运行。在 Internet Explorer 中,我的代码可以正常工作,除非用户单击表单选择项。当用户从下拉列表中选择一个项目时,clientX 和 clientY 报告一个不正确的值,这使得我的消息显示就好像用户将鼠标移到页面外一样。仅当鼠标实际移出页面时才应显示该消息。我已经在为旧版本的 IE 使用解决方法。有谁知道解决此问题的不同方法,以便代码在较旧的 IE 浏览器 (7-8) 中正常工作?
这是我的代码:
if (document.addEventListener) {
window.addEventListener("mouseout", popMessage, false);
} else { // IE before version 9
document.attachEvent ('onmouseout', popMessage);
}
.
.
.
.
var mouseX = 0;
var mouseY = 0;
function popMessage (e) {
mouseX = e.pageX;
mouseY = e.pageY;
if ('pageX' in e) { // all browsers except IE before version 9
var mouseX = e.pageX - document.documentElement.scrollLeft;
var mouseY = e.pageY - document.documentElement.scrollTop;
}
else { // IE before version 9
mouseX = e.clientX + document.documentElement.scrollLeft;
mouseY = e.clientY + document.documentElement.scrollTop;
}
if ((mouseY < 0 || mouseY > window.innerHeight-1)
|| (mouseX < 0 || mouseX > window.innerWidth-1))
{
abandonPanel.show();
// alert("x:" + mouseX + " y:" + mouseY + " innerHeight:" + window.innerHeight + " innerWidth:" + window.innerWidth);
if (document.addEventListener) {
window.removeEventListener("mouseout", popMessage, false);
} else { // IE before version 9
document.detachEvent ('onmouseout', popMessage);
}
}
}