开发者问题收集

在新标签页中打开 URL(而不是在新窗口中)

2011-02-05
3821354

我尝试在新选项卡中打开 URL ,而不是弹出窗口。

我见过相关问题,其答案如下:

window.open(url,'_blank');
window.open(url);

但它们都对我不起作用,浏览器仍然尝试打开弹出窗口。

3个回答

这是一个技巧,

function openInNewTab(url) {
  window.open(url, '_blank').focus();
}

// Or just
window.open(url, '_blank').focus();

在大多数情况下,这应该直接发生在链接的 onclick 处理程序中,以防止弹出窗口阻止程序和默认的“新窗口”行为。您可以这样做,或者通过向您的 DOM 对象添加事件侦听器来执行此操作。

<div onclick="openInNewTab('www.test.com');">Something To Click On</div>

参考: 使用 JavaScript 在新选项卡中打开 URL

Duke
2012-07-08

作者无法选择在新选项卡中打开而不是在新窗口中打开;这是 用户偏好 。 (请注意,大多数浏览器中的默认用户首选项是新标签页,因此在该首选项未更改的浏览器上进行的简单测试将无法证明这一点。)

CSS3 提出了 target-new ,但 该规范被放弃了

反向 是不正确的 ;通过在 window.open() 的第三个参数中为窗口指定某些窗口功能,您可以在首选项为选项卡时触发一个新窗口。

Quentin
2011-02-05

window.open() 如果未在实际点击事件中发生,则不会在新选项卡中打开。在给定的示例中,URL 是在实际点击事件中打开的。 只要用户在浏览器中进行了适当的设置,此方法便可行

<a class="link">Link</a>
<script  type="text/javascript">
     $("a.link").on("click",function(){
         window.open('www.yourdomain.com','_blank');
     });
</script>

同样,如果您尝试在点击函数中执行 Ajax 调用并希望在成功时打开窗口,请确保在执行 Ajax 调用时设置了 async : false 选项。

Venkat Kotra
2012-10-31