0

我们有一个安装在 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 设置可能导致它的任何想法?

4

1 回答 1

2

此 Microsoft 2013 年 7 月更新破坏了 OP 中的 javascript(这甚至在“已知问题”部分中得到承认):

http://support.microsoft.com/kb/2846071/en-gb

但它在 2013 年 8 月的更新中得到了修复:

http://support.microsoft.com/kb/2862772

我已确认安装了 8 月更新的客户端不再存在此问题。

于 2013-08-15T00:21:08.450 回答