Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE9窗口因jQuery Mobile而失去焦点_Javascript_Asp.net_Jquery Mobile_Internet Explorer 9 - Fatal编程技术网

Javascript IE9窗口因jQuery Mobile而失去焦点

Javascript IE9窗口因jQuery Mobile而失去焦点,javascript,asp.net,jquery-mobile,internet-explorer-9,Javascript,Asp.net,Jquery Mobile,Internet Explorer 9,在我们的产品中,我们正在ASP.NET网站上使用最新的jQuery Mobile开发版本。每次我们执行ASP.NET回发时,浏览器窗口都会转到屏幕的后面 例如: 最大化任何窗口。示例:可视 Studio、Word、Windows资源管理器 最大化IE9。IE9是唯一的 你在屏幕上看到的东西 在我们的解决方案中单击一个按钮 回帖 IE9不再可见。 它背后的一切现在都成了焦点 (并按原样填充屏幕 最大化) 我知道的唯一解决办法是: 不要包含jQuery移动脚本 确保IE9是Windows中唯一

在我们的产品中,我们正在ASP.NET网站上使用最新的jQuery Mobile开发版本。每次我们执行ASP.NET回发时,浏览器窗口都会转到屏幕的后面

例如:

  • 最大化任何窗口。示例:可视 Studio、Word、Windows资源管理器
  • 最大化IE9。IE9是唯一的 你在屏幕上看到的东西
  • 在我们的解决方案中单击一个按钮 回帖
  • IE9不再可见。 它背后的一切现在都成了焦点 (并按原样填充屏幕 最大化)
我知道的唯一解决办法是:

  • 不要包含jQuery移动脚本
  • 确保IE9是Windows中唯一最大化的窗口
我不知道jQuery Mobile在后台做了什么,我假设这是IE9中的一个bug,最终会被修复。然而,如果你有任何关于如何防止它同时发生的提示,那就太好了


编辑:似乎不是每次回发都有。每次回发都会执行Response.Redirect。我应该补充一点,我所有的回发实际上都是利用ASP.NET AJAX,而不是完整的回发

我知道这是一篇老文章,但对于来自谷歌的人来说:

我今天遇到了同样的问题。IE在触发窗口对象上的模糊事件时,似乎就是这种失焦行为。这就是导致我出现此问题的代码:

$(document.activeElement).blur();
当焦点中没有其他元素时,activeElement将默认为body元素,然后模糊事件将出现在窗口中。为了解决这个问题,我只做了如下检查:

if (document.activeElement != $('body')[0]) {
    $(document.activeElement).blur();
}

我在IE10和jQuery1.7.2上也有类似的问题。 我在我的代码中找到以下行:

$(document.activeElement).blur();

因此,添加simple.not('body')可以解决问题:

$(document.activeElement).not('body').blur();
$(':focus').not('body').blur();

jquerymobile1.4.2似乎也存在同样的问题

当使用IE 10时,在同一显示器上打开一个选项卡和另一个窗口,如果打开一个弹出窗口,它会将浏览器发送到后台

要解决此问题,必须编辑_handleDocumentFocusIn函数。您需要更改以下行(10391):

target.blur()


我提出了一个请求,希望下一个版本中会包含此链接。

只要将此链接发布给任何正在经历这种持续混乱的人即可。我在window.location='BLAH'上看到了IE9和IE10的问题,从角度定位资源中

这似乎不能解决我的问题,但可能会帮助其他人:


PS:我很惊讶javascript会以这种方式影响操作系统窗口。您是否将处于调试模式的应用程序连接到VS?否。甚至在外部服务器上也可以。我可以复制这个,但只有当IE9中只有一个选项卡打开时。如果你打开另一个标签,一个随机的站点,这个错误将不会发生。这是有道理的,但我没有时间来测试它,因为我们找到了另一个解决方法(Chrome框架,呵呵):)写得好的答案和优雅的解决方案,对我有效,非常感谢!
$(document.activeElement).not('body').blur();
$(':focus').not('body').blur();
if (targetElement.nodeName.toLowerCase() !== "body")
{
    target.blur();
}