新标签中的javascript window.location

时间:2011-09-26 11:02:33

标签: javascript html redirect

我正在通过window.location将用户转移到某个网址,但此网址会在浏览器的同一个标签中打开。我希望它在新标签中打开。我可以用window.location这样做吗?还有其他方法可以做这个动作吗?

7 个答案:

答案 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。