Javascript 在新选项卡中打开给定页面上的所有超链接

Javascript 在新选项卡中打开给定页面上的所有超链接,javascript,jquery,Javascript,Jquery,我想用JavaScript一次在新选项卡中打开给定网页上的所有链接。让我们以堆栈溢出问题列表为例。以下是我的想法: $(".question-hyperlink").each(function(){ $(this).attr({ target: "_blank", title: "Opens in a new window" }); $(this).click(); }) 不幸的是,这根本不起作用。我尝试使用窗口。改为打开,但仍

我想用JavaScript一次在新选项卡中打开给定网页上的所有链接。让我们以堆栈溢出问题列表为例。以下是我的想法:

$(".question-hyperlink").each(function(){

 $(this).attr({
           target: "_blank",
           title: "Opens in a new window"
       });
 $(this).click();

})

不幸的是,这根本不起作用。我尝试使用
窗口。改为打开
,但仍然没有成功。我该怎么做?

您的代码不工作的原因是它没有模拟用户的单击,它只是触发绑定到单击事件的所有事件处理程序。因此,它只运行您放置的JS代码,而不运行浏览器对单击的反应

您可以这样使用:

$(".question-hyperlink").each(function(){
    window.open($(this).attr("href"), '_blank');
});
var x = window.open(...);
if(x) {
   //The window was opened.
}
else {
   //It was blocked.
}
不过要注意弹出窗口拦截器!如果您想处理它们,可以执行以下操作:

$(".question-hyperlink").each(function(){
    window.open($(this).attr("href"), '_blank');
});
var x = window.open(...);
if(x) {
   //The window was opened.
}
else {
   //It was blocked.
}

肆无忌惮的垃圾邮件发送者希望能够让访问者的浏览器在新窗口中同时打开大量链接。他们会很高兴地打开十几个用户不想看到的页面,然后申请点击广告费

不过,浏览器的用户对此并不满意,因此大多数浏览器都不可能一次打开多个窗口


您想要的东西无法完成。

执行后会发生什么?看到添加的属性了吗?这取决于上下文。如果在您可以控制浏览器设置的环境中需要此功能(如chrome JS extenstion,或您负责设置的公司内部网上的JS应用程序),您可能可以做到这一点。然而,依靠它为网络上的所有用户工作可能不是一个好主意。谢谢你,先生。我确实这样做了,但忘了在测试时检查弹出窗口拦截器。这正是我要找的!