【发布时间】:2012-11-18 20:09:33
【问题描述】:
我为用户提供了打开单个选项卡或选项卡组的选项。当他们点击一个特殊链接时,我想打开几个相关的标签。打开几个标签的javascript如下:
<li>
<a href="javascript:launchAll()">Or launch them all at once</a>
</li>
<script>
function launchAll() {
var win = window.open("http://domain.com/page1");
win = window.open("http://domain.com/page2");
win = window.open("http://domain.com/page3");
win = window.open("http://domain.com/page4");
}
</script>
前两个作为选项卡打开,后两个尝试作为弹出窗口/在单独的窗口中打开,在我的情况下被阻止。取消阻止弹出窗口不是问题,这个 UI 也不是问题。我的问题是为什么这四个看似相同的调用会产生不同的结果。
更新:这似乎只发生在 Chrome 中。 Firefox 和 Safari 都作为新标签打开。有谁知道解决方法吗?
【问题讨论】:
-
好问题,对我来说前三个正常打开,第三个在弹出窗口中打开。
-
我只是尝试在打开其他链接之前添加延迟,但它不起作用...为了检测是否有不受欢迎的东西,我认为 Chrome 会记住用户是否在不久前点击过.在你的情况下,答案是否定的,因此它们被阻止了。
-
尝试将_blank作为目标。我几乎可以肯定它不会起作用,但谁知道:) 另外,尝试将它们存储在不同的变量中。即使它也可能不起作用。
-
这不能回答问题,但您不需要将 window.open(...) 分配给变量。随意取出代码中的“win =”部分,除非您打算在创建后与打开的窗口进行交互。