【问题标题】:Open multiple tabs with javascript用javascript打开多个标签
【发布时间】:2020-11-23 23:52:46
【问题描述】:

我有一个获取 ID 列表的 javascript 例程,我想为每个 ID 打开一个浏览器选项卡。这就是我现在所拥有的——它打开了第一个选项卡,但没有打开任何其他选项卡。有人能指出我正确的方向吗?

function launch() {
        var data = {5, 8, 9};
        if (data.length > 0) {

            let url = "/Controller/Action";
            data.forEach(function (entry) {
                
                let link = document.createElement('a');
                link.href = url + "?VisitID=" + entry;
                link.target = '_blank';
                link.click();
                //setTimeout(() => { console.log("wait"); }, 1000);
            });
        }
        else {
            alert("You must select at least one row before launching");
        }
    }

【问题讨论】:

  • var data = {5, 8, 9}; 并且您在控制台中没有错误?此外,您是否愿意来到一个为您打开 1000 个选项卡或浮动窗口的网站?不,当然,因此浏览器会为您处理 - 并给您一个很好的 no-no 阻止。
  • 我想知道关于数据变量的同样的事情。首先,我认为它可以作为{5: 5, 8: 8, 9: 9} 的简写,但我错了——在这种情况下,花括号表示一个,每个以逗号分隔的项目作为代码单独执行。 data 最后应该评估为 9。不管怎样,这大概不是乔治的本意。我猜他的意思是用括号代替。 [5, 8, 9].
  • 对不起,我的意思是括号。\

标签: javascript jquery


【解决方案1】:

首先,如果您实际上不需要显示链接而仅用于打开新标签页,则可以使用 window.open 代替。

其次,根据this comment,你想做的事情是可以做到的。考虑以下伪代码:

[1,2,3].forEach(i => {
  window.open("http://example.com/" + i, i)
})

“诀窍”是每次都提供不同的 URL 和新名称(window.open 的第二个参数)。否则,Chrome(可能还有其他浏览器)只会打开一个标签。

但是,谨慎使用这种方法。如果您过于频繁地打开太多选项卡,这会让用户抓狂。

【讨论】:

  • 值得注意的是,大多数现代浏览器都会阻止过度使用打开链接(包括来自 .click() 和 window.open)
  • 我试过这个方法,它仍然只打开第一个选项卡,而不是其他任何选项卡。这是一个内部应用程序,用户想要多个选项卡,所以请不要担心“这是否可行”,我只想让它工作。
  • 你确定这两个参数每次都改变吗?您使用的是哪种浏览器?
  • 当我尝试此操作时,其他选项卡没有打开,但因为我默认启用了弹出窗口阻止程序...一旦我为此页面启用了弹出窗口,它打开了 3 个选项卡没有任何问题。可能这也是@George 浏览器的问题?
  • 我使用的是 Chrome,但我没有运行任何弹出窗口阻止程序。每个链接都已经有了不同的键值,我用变量计数器来命名它。
【解决方案2】:

我找到了这个简单的 javascript 解决方案:

<html>
<head>
<script type="text/javascript">
function open_win() {
    window.open("http://accountingtaxinsurance.com/")
    window.open("http://jaelfaulconinsurance.com/")
}
</script>
</head>

<body>
<form>
<input type=button value="Open Windows" onclick="open_win()">
</form>
</body>

</html>

【讨论】:

  • 只是行不通。
猜你喜欢
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
  • 2019-08-17
相关资源
最近更新 更多