我有一个专门设计用来同时打开多个页面的按钮,它是该按钮的主要功能。
我尝试使用:
(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] 删除。
我来说两句