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

时间:2015-11-04 09:49:25

标签: javascript jquery

我想使用JavaScript立即在新标签页中打开指定网页上的所有链接。让我们以Stack Overflow问题列表为例。以下是我提出的建议:

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

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

})

不幸的是,这根本不起作用。我尝试使用window.open代替,但仍然没有成功。我该怎么办?

2 个答案:

答案 0 :(得分:4)

您的代码无效的原因是.click()不会模拟用户的点击,它只会触发绑定到click事件的所有事件处理程序。所以它只运行你已经实施的JS代码,而不是浏览器对点击的反应。

您可以像这样使用window.open()

$(".question-hyperlink").each(function(){
    window.open($(this).attr("href"), '_blank');
});

注意弹出窗口拦截器!如果你想处理它们,你可以这样做:

var x = window.open(...);
if(x) {
   //The window was opened.
}
else {
   //It was blocked.
}

答案 1 :(得分:1)

肆无忌惮的垃圾邮件发送者希望能够吸引访问者。浏览器同时在新窗口中打开大量链接。他们很乐意打开用户不想看的十几页,然后声明点击广告费。

浏览器的用户不会对此感到满意,因此大多数浏览器都无法一次打开多个窗口。

你想做什么是不可能的。