如何一次打开多个标签[JavaScript]

阿涅夫

我有一个专门设计用来同时打开多个页面的按钮,它是该按钮的主要功能。

我尝试使用:

(1)

urls.forEach(url => {
  window.open(url);
});

(2)延迟履行承诺,但这也没有用。

(3)多个a标签并尝试模拟人为点击,但这也不起作用。

var element = document.createElement("a");
element.href = tempUrl;
element.innerHTML = "temp";
element.id = "tempAtag";
element.target = "_blank";
document.getElementById("dashboardID").appendChild(element);
element = document.getElementById("tempAtag");
var box = element.getBoundingClientRect(),
coordX = box.left + (box.right - box.left) / 2,
coordY = box.top + (box.bottom - box.top) / 2;
var simulateMouseEvent = function (element, eventName, coordX, coordY) {
  element.dispatchEvent(
    new MouseEvent(eventName, {
      view: window,
      bubbles: true,
      cancelable: true,
      clientX: coordX,
      clientY: coordY,
      //button: 0,
    })
  );
};
simulateMouseEvent(element, "mousedown", coordX, coordY);
simulateMouseEvent(element, "mouseup", coordX, coordY);
simulateMouseEvent(element, "click", coordX, coordY);

这确实适用于第一个链接,但是我在控制台中收到一条警告,说我正在尝试仅通过一次交互打开多个选项卡。因此,它仅适用于一个链接,而不适用于其余链接。

我从使用纯JavaScript模拟真实人类鼠标单击中获得了代码

注意:我确实a在每次迭代后都删除了标签,并且进行了测试,没有重复项)

我没主意了。有任何想法吗?

(我查看了其他解决方案,但遇到的所有问题都没有对我有用)

跳跳虎

以下与大IF一起使用

如果是你需要点击“允许弹出”警告将出现在地址栏并继续允许弹出窗口从该网站。

您还需要弹出窗口以加载到新选项卡中。

我仍然认为这是一个重复的问题,在新标签页(而不是新窗口)中打开URL

var id = 0, u = ['12','34','56','78'];
function openNextTab(){
    if (u[id]){
        var x = window.open("https://some.site/id:"+ u[id],"id"+u[id]);
        id++;
        setTimeout(openNextTab,2000);
    }
}
function openTabs(e){
    e.stopPropagation();e.preventDefault();
    openNextTab();
}
window.onload = function(){
    var b = document.getElementById("openLinks");
    b.addEventListener("click",openTabs,false);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章