4

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

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

我在window.onbeforeunload中使用它来检测用户离开页面而没有注销并引导他们,但我今天禁用它,直到我弄清楚这一点。

4

4 回答 4

3

此链接:http ://social.technet.microsoft.com/Forums/windows/ja-JP/0985853c-0376-48d0-b748-c4259c0fc4a9/26356260321250312525124641252112512-kb2846071暗示这是一个故意的结果。

这可能是为了解决这里的安全问题:http: //blogs.msdn.com/b/ie/archive/2012/12/13/update-to-alleged-information-and-security-issue-与鼠标位置行为.aspx

于 2013-07-12T22:41:59.377 回答
2

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

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

看起来微软修复了坐标的泄漏......但是通过完全删除所有它们来做到这一点......包括视口坐标中的有用!

例如undefined,在浏览器视口内返回的 X、Y 坐标肯定是 100% 的事件。

于 2013-07-15T15:38:02.730 回答
2

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

  • 此前,他们曾表示他们认为“实验室外”没有任何风险
  • 补丁中没有记录更改,它指的是“内存损坏”和“JIS 字符编码漏洞”
  • 如果 clientX 只返回页面内的坐标,风险就消失了

是补丁的补丁吗?

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

于 2013-07-16T04:49:58.937 回答
1

此 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:31:12.187 回答