javascript - 由于 jQuery Mobile,IE9 窗口失去焦点

标签 javascript asp.net jquery-mobile internet-explorer-9

在我们的产品中,我们在 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/

相关文章:

jquery - 在页面之间导航时保​​留表单值

javascript - 如何在运行时动态关注输入元素

javascript - 从内部赋予 iframe 属性

c# - RegularExpressionValidator ErrorMessage 边界溢出两行

c# - 在不使用 App_Code 的情况下从 cshtml 文件创建一个简单类并调用其方法

jquery - 固定图像的位置

jquery - 为什么 jQuery Mobile 总是在 DOM 中加载 "original"页面?

javascript - HTML5 音频标签 - 开始和结束位置

javascript - 使用一些数学可视化 JSON 元素

asp.net - WebForms 中的 Tab 键切换行为