我为用户提供了打开单个标签页或标签组的选项。当他们点击特殊链接时,我想打开几个相关的标签。用于打开多个选项卡的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将所有标签打开。有谁知道一项工作?
答案 0 :(得分:6)
此限制实际上是由Chrome安全设置引起的:Chrome不希望用户只需点击一下即可打开无限制的标签。因此,他们使用的设置是,第一次单击最多两个选项卡,每次额外单击一个选项卡。所以,如果你想解决这个问题,你必须做这样的事情:
<li>
<a href="javascript:launchAll()">Or launch them all at once</a>
<a href="javascript:launch()" id="test"></a>
<a href="javascript:launch2()" id="test2"></a>
</li>
<script>
function launchAll() {
var win = window.open("http://domain.com/page1");
win = window.open("http://domain.com/page2");
document.getElementById("test").click();
}
function launch(){
var win = window.open("http://domain.com/page3");
document.getElementById("test2").click();
}
function launch2(){
var win = window.open("http://domain.com/page4");
}
</script>
请注意,由于<a id="test*">
内容为空,因此它们不会显示在您的文档中,因此您的布局保持不变。
另请注意,Firefox中不存在click()
方法,因此您必须使用here之类的内容。