window.open在谷歌浏览器中的使用导致奇怪的'选项卡与新窗口'行为

时间:2014-04-30 18:54:21

标签: javascript google-chrome

我们最近对我们的应用程序进行了更改,该更改将在打开新页面时停止强制打开新窗口。在大多数默认设置中,这会导致这些页面作为新选项卡打开,但我意识到这可能取决于用户。

但是,我们注意到Chrome中的一些奇怪行为,其中同样的调用:

window.open('http://google.ca');

有时会在标签页中打开,有时在新窗口中打开。它似乎与处理javascript的延迟有关,但我不太确定。

以下JSFiddle具有复制行为的说明。任何人都可以解释这种行为或提供一种方法来使用单个window.open调用,当使用左键单击时,它将以相同的方式一致打开吗?

JSFiddle

1 个答案:

答案 0 :(得分:1)

你可以看到detailed response here;要点是,如果它是用户启动的行为,它将在新选项卡中打开。如果存在任何排序延迟,例如超时,则它将在新窗口中打开。因此,您对处理延迟的观察是正确的。

如果您对window.open的来电有时会延迟,则可能是用户界面或工作流程问题。链接到的线程中提供的其他一些答案可能会为您提供选项。