我想使用JavaScript立即在新标签页中打开指定网页上的所有链接。让我们以Stack Overflow问题列表为例。以下是我提出的建议:
$(".question-hyperlink").each(function(){
$(this).attr({
target: "_blank",
title: "Opens in a new window"
});
$(this).click();
})
不幸的是,这根本不起作用。我尝试使用window.open
代替,但仍然没有成功。我该怎么办?
答案 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)
肆无忌惮的垃圾邮件发送者希望能够吸引访问者。浏览器同时在新窗口中打开大量链接。他们很乐意打开用户不想看的十几页,然后声明点击广告费。
浏览器的用户不会对此感到满意,因此大多数浏览器都无法一次打开多个窗口。
你想做什么是不可能的。