pfe*_*rel 9 javascript google-chrome
我为用户提供了打开单个选项卡或选项卡组的选项.当他们点击特殊链接时,我想打开几个相关的标签.用于打开多个选项卡的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>
Run Code Online (Sandbox Code Playgroud)
前两个打开作为选项卡,后两个尝试打开弹出/在单独的窗口,在我的情况下被阻止.解锁弹出窗口不是问题,这个UI不是问题.我的问题是为什么这四个看似相同的调用会产生不同的结果.
更新:这似乎只发生在Chrome中.Firefox和Safari将所有标签打开.有谁知道一个工作?
此限制实际上是由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>
Run Code Online (Sandbox Code Playgroud)
请注意,由于<a id="test*">
内容为空,因此它们不会显示在文档中,因此您的布局保持不变.
另请注意,该click()
方法在Firefox中不存在,因此您必须使用此处的内容.
归档时间: |
|
查看次数: |
2326 次 |
最近记录: |