Windows更新2846071是否破坏了window.event.clientX clientY的处理?

时间:2013-07-11 21:57:54

标签: javascript internet-explorer javascript-events

Windows更新http://support.microsoft.com/?kbid=2846071是否会破坏 window.event.clientX clientY 的处理?似乎使用IE 9或10的Windows 7机器现在返回的东西看起来像窗口位置(左上角)而不是窗口内的鼠标位置。这些数字看起来很准确,但可能是否定的。

或者这是一个“修复”,我应该在鼠标位置使用别的东西。

我在 window.onbeforeunload 中使用它来检测用户离开页面时没有注销并给他们启动,但我今天禁用了这个,直到我弄明白了。

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

唉! 好的,这就是微软试图解决的问题以及他们在此过程中遇到的问题。

最初IE浏览器视口(1)之外的事件坐标泄漏(例如,在网页不应该知道的区域)以及当IE窗口没有泄漏坐标时主动关注(2)(例如当你在另一个应用程序或另一个监视器上时......最后它泄漏了一些击键(3)

看起来微软修复了坐标的泄漏...但是 完全 删除所有这些......包括 USEFUL 在视口坐标中!

e.g。对于X,Y坐标,事件返回undefined,这些坐标在浏览器视口中肯定是100%。

答案 2 :(得分:2)

这看起来像是微软不打算发布的东西。

  • 以前,他们表示他们认为“实验室外”没有任何风险
  • 修补程序中未记录更改,指的是“内存损坏”和“JIS字符编码漏洞”
  • 如果clientX仅返回页面内的坐标,则风险消失

路上是补丁修补程序吗?

此外:clientX / clientY(和类似属性)的问题取决于用于触发javascript的事件。我发现onfocus返回不正确的坐标,但是onclick返回正确的坐标。没有尝试过其他活动。

答案 3 :(得分:1)

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

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

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

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

我已确认我安装Aug更新的客户不再有问题。