我有一个javascript例程,它获取一个ID列表,我想为每个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");
}
}
3条答案
按热度按时间jgwigjjp1#
首先,如果您实际上不需要显示链接,只需要使用它来打开一个新的标签页,那么您可以使用
window.open
来代替。第二,根据这条评论,你想做的事情是可以做到的。考虑下面的伪代码:
“诀窍”是每次提供一个不同的URL和一个新的名称(
window.open
的第二个参数),否则Chrome(可能还有其他浏览器)只会打开一个标签页。但是,请谨慎使用这种方法,如果你经常打开太多的标签页,会让用户抓狂的。
zvokhttg2#
我找到了这个简单的javascript解决方案:
gj3fmq9x3#
进入Chrome设置〉“隐私和安全”〉“网站设置”〉“弹出窗口和重定向”
允许所有站点,或将特定站点添加到“允许发送弹出窗口和使用重定向”站点列表中
或者,在您尝试打开多个选项卡的选项卡上,您会看到一条消息“弹出窗口被阻止”,当您单击它时,会给予您一个对话框,您可以选择单选按钮“始终允许弹出窗口和重定向自...”