Javascript 一次单击即可打开10个选项卡

Javascript 一次单击即可打开10个选项卡,javascript,Javascript,我是Javascript新手。我尝试用相同的链接打开10个新选项卡,但当我运行代码并单击按钮时,它只打开一个带有此url的选项卡。请告诉我如何在js中做到这一点 代码如下: <button onclick="virus()" type="button" name="button" >Start your Magic!</button> <script> function vir

我是Javascript新手。我尝试用相同的链接打开10个新选项卡,但当我运行代码并单击按钮时,它只打开一个带有此url的选项卡。请告诉我如何在js中做到这一点

代码如下:

<button 
  onclick="virus()" 
  type="button" 
  name="button"
>Start your Magic!</button>

<script>
  function virus() {
    for(var i = 0; i < 10; i++) {
      window.open("https://www.w3schools.com/js/js_jquery_selectors.asp");
    }
  }
</script> 
开始你的魔法吧!
功能病毒(){
对于(变量i=0;i<10;i++){
窗口打开(“https://www.w3schools.com/js/js_jquery_selectors.asp");
}
}

本stackoverflow线程对此进行了详细讨论:

长短不一的是,现代浏览器似乎不允许这样做。

首先确保允许从chrome中像附加图像一样“弹出和重定向”

第二,尝试将代码包装为超时,如:

    for (var i = 0; i < 10; i++) {
        setTimeout(() => {
           window.open("https://www.w3schools.com/js/js_jquery_selectors.asp"  );
        }, 200);
    }
for(变量i=0;i<10;i++){
设置超时(()=>{
窗口打开(“https://www.w3schools.com/js/js_jquery_selectors.asp"  );
}, 200);
}
window.open()接受第二个参数作为windowName。因此,如果没有具有特定名称的浏览上下文,则会创建一个新的浏览上下文

因此,由于您尚未传递第二个参数,第一个参数之后的所有其他window.open调用将不会创建新的浏览上下文,也不会打开新的窗口/选项卡

因此,对于修复,您可以尝试使用以下代码-

<button onclick="virus()" type="button" name="button"> Start your Magic!</button>
   <script>
       function virus(){
         for(var i=0;i<10;i++){
        window.open("https://www.w3schools.com/js/js_jquery_selectors.asp", i.toString());
         }
       }
开始你的魔法吧!
功能病毒(){

for(var i=0;iit最好将函数包装在for循环中。因此它会触发病毒函数10次。不测试。你不认为它应该是注释而不是答案吗?但它不起作用。你有其他想法吗。