我们有一个安装在 Intranet 上并通过 IE 访问的应用程序。如果用户关闭浏览器(例如使用浏览器右上角的 X),我们想要做一些事情,但如果用户点击链接转到不同的页面,我们就不想做。所以在javascript中,我们要检测这种情况。建议的最常见解决方案是在 onunload 或 onbeforeunload 函数中,检查 event.ClientY 是否为负数。如果它是否定的,那么用户点击了 X 以关闭浏览器。我知道这并不完全可靠,但它只需要在 IE 中工作。这是一个例子:
http://www.coderanch.com/t/122627/HTML-CSS-JavaScript/Generic-code-Detect-Brower-Close
这是我们的问题:在某些客户端计算机上,当用户单击页面上应该将其发送到另一个页面的链接时,event.clientY 值始终为负,然后运行我们的 JavaScript当他们关闭浏览器时运行。event.clientX 和 event.clientY 总是卡在相同的负值上,无论链接在我单击的页面上的哪个位置。我在执行此操作的客户端计算机上看不到任何不同(例如,IE 版本或设置或兼容性视图,或者服务器是否是受信任的站点)。如果我在 onclick 函数中提醒 event.clientY,它似乎是正确的。它仅在 onunload 和 onbeforeunload 函数中作为负值卡住。
关于为什么会发生这种情况,或者什么 IE 设置可能导致它的任何想法?