2010-07-20 39 views
0

我不知道这种症状的确切原因,但在这里。在我们的网络应用程序中,我们打电话window.open打开一个新的窗口/选项卡(内部每个人都设置为在新选项卡中打开)。打开这个新选项卡后,IE8立即将焦点切换到它。window.open和.net WebServices

然后,我们集成了一个Web服务,所以我们称这个Web服务在返回时会调用一个回调JavaScript函数。我们现在从回调函数中调用window.open。当我们这样做时,IE8打开新标签,但不切换焦点。在父页面和子页面上调用window.focus什么也不做。

现在,我知道JavaScript不是线程的,但这是与异步性有关吗?有没有办法让浏览器按预期行事?

回答

2

我相信,默认情况下,如果由于用户发起的操作(如点击)而打开了IE,则只会将焦点切换到新标签。如果window.open调用不是响应UI操作,那么IE可能会打开后台中的标签,就像它是某种弹出式窗口一样,但显然它不会被弹出窗口阻止程序阻止。

如果您处于Intranet环境并且可以指定设置,是否尝试过在选项卡式浏览设置对话框中设置“在创建时总是切换到新选项卡”复选框?

+0

*前额巴掌*这非常合理。我们会这样做。出于兴趣,你认为填充浏览器的'event'对象会改变行为吗?也许它可能欺骗浏览器。 – Anthony 2010-07-20 02:09:37

+0

我怀疑该解决方法会产生任何效果。 IE几乎肯定会在浏览器chrome本身的代码中检查这种情况,而不是DOM。 – Josh 2010-07-20 02:15:23