无法使用js click()打开多个A

时间:2017-07-26 13:43:04

标签: javascript google-chrome foreach click window

如何在js中的新标签/窗口中打开多个链接。

document.querySelectorAll('a').forEach(function(item){
    item.click();
    window.open(a.getAttribute('href'), '_blank'); //also does not work
});

我能想到为什么上述不起作用的唯一原因是铬的安全性?

3 个答案:

答案 0 :(得分:1)

如果您不关心弹出窗口阻止程序妨碍您使用,只需使用window.open()并在新标签中打开它们即可。您不能同时使JS 点击多个链接,因为它会停止当前标签并关注新标签(至少使用标准设置)



document.querySelectorAll("a").forEach(function(item) {
  window.open(item.href);
});




在Chrome中,您可以使用以下脚本阻止弹出窗口阻止程序:



document.querySelectorAll("a").forEach(function(item) {
    // will create tabs for every link
    chrome.tabs.create({
        url: item.href
    });
});




答案 1 :(得分:1)

您需要切换到for循环。 forEach返回对节点列表的引用,而不是对象本身。请尝试以下方法:

function myFunction() {

    var myNodelist = document.querySelectorAll("a");
    var i;

    for (i = 0; i < myNodelist.length; i++) {
        myNodelist[i].click();
    }
 }

答案 2 :(得分:0)

Nailed它,谢谢你的帮助。

第一个标签打开,因为chrome很好,但其余的都被阻止了。有一个小图标显示hey, don't open these pops

enter image description here

点击此按钮,您将看到所有弹出窗口

enter image description here