在我们的产品中,我们在 ASP.NET 网站上使用了最新开发版本的 jQuery Mobile。每次我们执行 ASP.NET 回发时,浏览器窗口都会转到屏幕后面。
示例:
- 最大化任何窗口。示例:视觉 Studio、Word、Windows 资源管理器。
- 将 IE9 最大化。 IE9是唯一 你在屏幕上看到的东西。
- 在我们的解决方案中点击一个按钮 回发。
- IE9 不再可见。 无论它背后是什么,现在都有焦点了 (并填满屏幕,因为它是 最大化)
只有我知道的解决方法:
- 不要包含 jQuery 移动脚本。
- 确保 IE9 是 Windows 中唯一最大化的窗口。
我不知道 jQuery Mobile 在后台做什么,我假设这是 IE9 中的一个错误,最终会得到修复。但是,如果您在此期间有任何关于如何防止它发生的提示,那就太好了。
编辑:似乎不是在每个回传中。它在每个执行 Response.Redirect 的回发中。我应该补充一点,我所有的回发实际上都在使用 ASP.NET AJAX,而不是完整的回发。
最佳答案
我知道这是一篇旧帖子,但对于从 Google 来到这里的人:
我今天遇到了同样的问题。似乎这种失去焦点的行为是 IE 在您触发窗口对象上的模糊事件时所做的。这是导致我出现此问题的代码:
$(document.activeElement).blur();
当没有其他元素处于焦点时,activeElement 将默认为 body 元素,然后 blur 事件冒泡到窗口。为了解决这个问题,我简单地做了一个检查:
if (document.activeElement != $('body')[0]) {
$(document.activeElement).blur();
}
关于javascript - 由于 jQuery Mobile,IE9 窗口失去焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657371/