新标签中的javascript window.location

Muh*_*riq 108 html javascript redirect

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

小智 396

window.open('https://support.wwf.org.uk', '_blank');
Run Code Online (Sandbox Code Playgroud)

第二个参数是使它在新窗口中打开的原因.别忘了阅读Jakob Nielsen的内容丰富的文章 :)

  • 这应该被标记为正确的答案!! (11认同)
  • 但是如果您的浏览器在弹出窗口中阻止设置怎么办?这不会炒. (9认同)

Fan*_*lat 39

你甚至可以使用

window.open('https://support.wwf.org.uk', "_blank") || window.location.replace('https://support.wwf.org.uk');
Run Code Online (Sandbox Code Playgroud)

如果弹出窗口被阻止,这将在同一选项卡上打开它。


Ian*_*ley 18

除非你正在编写浏览器扩展,否则我认为没有办法做到这一点.您可以尝试使用window.open并希望用户将其浏览器设置为在新选项卡中打开新窗口.


rod*_*ira 8

这适用于我在Chrome 53上.没有在其他地方测试:

function navigate(href, newTab) {
   var a = document.createElement('a');
   a.href = href;
   if (newTab) {
      a.setAttribute('target', '_blank');
   }
   a.click();
}
Run Code Online (Sandbox Code Playgroud)


小智 6

而不是弹出,我个人喜欢这个解决方案,在这个问题线程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();

    });
Run Code Online (Sandbox Code Playgroud)

工作示例


rel*_*one 5

使用jQuery更加容易,并且可以在Chrome上运行

$('#your-button').on('click', function(){
       $('<a href="https://www.some-page.com" target="blank"></a>')[0].click();    
})
Run Code Online (Sandbox Code Playgroud)