如何使用JavaScript或jQuery在新选项卡中打开URL?

Mid*_*una 254 javascript asp.net-mvc jquery

如何以编程方式在新选项卡中打开URL而不是新窗口?

Fab*_*ook 417

用途window.open():

var win = window.open('http://stackoverflow.com/', '_blank');
if (win) {
    //Browser has allowed it to be opened
    win.focus();
} else {
    //Browser has blocked it
    alert('Please allow popups for this website');
}
Run Code Online (Sandbox Code Playgroud)

根据浏览器的实现,这将起作用

没有什么可以让它在窗口而不是标签中打开.

  • `window.open()` 会导致弹出警告,这是不受欢迎的用户体验。而是在某处引入隐藏的 `<a href="" target="_blank" id="click_me" ></a>` 并使用 `.click()` 执行单击,例如: `document.getElementById('click_me' ).点击()` (4认同)
  • 这是浏览器窗口的特殊名称,每次都会创建一个新窗口,或者您可以使用特定名称,例如“ login_screen”,如果该窗口已经加载,它将使用您提供的URL重新加载内容 (3认同)
  • _blank在此通话中起什么作用? (2认同)

Jai*_*Sat 153

这很简单.

window.open('_link is here_', 'name'); 
Run Code Online (Sandbox Code Playgroud)

功能说明:

name是窗口的名称.支持以下名称:

  • _blank- URL已加载到新选项卡中.这是默认值.
  • _parent - URL加载到父框架中
  • _self - URL替换当前页面
  • _top - URL替换可能加载的任何框架集

  • 为了安全起见,可以添加“noopener”和“noreferrer”窗口功能: window.open("url", "_blank", "noopener,noreferrer"); (2认同)

Laf*_*ziq 59

如果您打算在新标签上打开所有链接,请尝试使用此jquery

$(document).on('click', 'a', function(e){ 
    e.preventDefault(); 
    var url = $(this).attr('href'); 
    window.open(url, '_blank');
});
Run Code Online (Sandbox Code Playgroud)


cod*_*ker 36

 var url = "http://www.example.com";
 window.open(url, '_blank');
Run Code Online (Sandbox Code Playgroud)


Kof*_*ffy 26

您可以轻松创建新选项卡; 做如下:

function newTab() {
     var form = document.createElement("form");
     form.method = "GET";
     form.action = "http://www.example.com";
     form.target = "_blank";
     document.body.appendChild(form);
     form.submit();
}
Run Code Online (Sandbox Code Playgroud)

  • 修改你的实现是用户驱动的(即点击一个链接)而不是自动执行(即在页面加载)...然后赞美正义的弹出窗口阻止程序 (3认同)

Dan*_*lla 12

我知道您的问题没有说明您是在尝试在新窗口中打开所有标签还是仅打开外部链接.

但是,如果您只想在新标签页中打开外部链接,则可以执行以下操作:

$( 'a[href^="http://"]' ).attr( 'target','_blank' )
$( 'a[href^="https://"]' ).attr( 'target','_blank' )
Run Code Online (Sandbox Code Playgroud)