新标签中的 javascript window.location

Posted

技术标签:

【中文标题】新标签中的 javascript window.location【英文标题】:javascript window.location in new tab 【发布时间】:2011-11-25 03:05:59 【问题描述】:

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

【问题讨论】:

复制:***.com/questions/427479/… window.location 是必需的吗?或者可以提供其他的JS解决方案吗? @Khez:可以提供其他JS。 你可以使用window.open() 【参考方案1】:

我们必须动态设置属性 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。

【讨论】:

【参考方案2】:

你甚至可以使用

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

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

【讨论】:

【参考方案3】:

宁愿弹出,我个人喜欢这个解决方案,在这个问题线程中提到 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。

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

这适用于我在 Chrome 53 上。尚未在其他任何地方测试过:

function navigate(href, newTab) 
   var a = document.createElement('a');
   a.href = href;
   if (newTab) 
      a.setAttribute('target', '_blank');
   
   a.click();

【讨论】:

【参考方案6】:
window.open('https://support.wwf.org.uk', '_blank');

第二个参数是什么让它在新窗口中打开。不要忘记阅读Jakob Nielsen's informative article :)

【讨论】:

但是如果您的浏览器阻止了弹出窗口设置怎么办?这不行。 @Alex meh...不是真正的“正确”答案。在 Firefox 中尝试此操作,我阻止弹出窗口,此代码失败。【参考方案7】:

我认为没有办法做到这一点,除非您正在编写浏览器扩展程序。您可以尝试使用window.open 并希望用户将浏览器设置为在新标签页中打开新窗口。

【讨论】:

以上是关于新标签中的 javascript window.location的主要内容,如果未能解决你的问题,请参考以下文章

javascript 新标签中的URL /链接重新标记

通过javascript使用chrome中的新标签打开页面

如何使用javascript和jquery中的<a>标签在新标签中打开链接[重复]

如何使用javascript打开新标签中的数组链接?

如何在javascript中捕获新标签事件中的打开链接?

[带有IE8的新标签页中的javascript打开页面