我正在通过window.location
将用户转移到某个网址,但此网址会在浏览器的同一个标签中打开。我希望它在新标签中打开。我可以用window.location这样做吗?还有其他方法可以做这个动作吗?
答案 0 :(得分:350)
window.open('https://support.wwf.org.uk', '_blank');
第二个参数是在新窗口中打开它的原因。不要忘记阅读Jakob Nielsen's informative article:)
答案 1 :(得分:16)
您甚至可以使用
window.open('https://support.wwf.org.uk', "_blank") || window.location.replace('https://support.wwf.org.uk');
如果弹出窗口被阻止,它将在同一选项卡上打开它。
答案 2 :(得分:15)
除非您正在编写浏览器扩展程序,否则我认为没有办法实现此目的。您可以尝试使用window.open
并希望用户将其浏览器设置为在新标签页中打开新窗口。
答案 3 :(得分:5)
这适用于我在Chrome 53上。没有在其他地方测试过:
function navigate(href, newTab) {
var a = document.createElement('a');
a.href = href;
if (newTab) {
a.setAttribute('target', '_blank');
}
a.click();
}
答案 4 :(得分:3)
使用jQuery更容易,也适用于Chrome
$('#your-button').on('click', function(){
$('<a href="https://www.some-page.com" target="blank"></a>')[0].click();
})
答案 5 :(得分:1)
宁可弹出,我个人很喜欢此问题线程上提到的此解决方案 JavaScript: location.href to open in new window/tab?
$(document).on('click','span.external-link',function(){
var t = $(this),
URL = t.attr('data-href');
$('<a href="'+ URL +'" target="_blank">External Link</a>')[0].click();
});
工作example。
答案 6 :(得分:0)
我们必须动态设置属性target =“ _ blank”,它将在新选项卡中将其打开。
document.getElementsByTagName("a")[0].setAttribute('target', '_blank')
document.getElementsByTagName("a")[0].click()
如果要在新窗口中打开,请获取href链接并使用window.open
var link = document.getElementsByTagName("a")[0].getAttribute("href");
window.open(url, "","height=500,width=500");
上面没有提供第二个参数作为_blank。