How to open a URL in new tab instead of new window programatically?
6 Answers
Use 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');
}
Depending on the browsers implementation this will work
There is nothing you can do to make it open in a window rather than a tab.
3 Comments
_blank do in this call?window.open() would cause the popup warning which is an unwanted user experience. Instead introduce a hidden <a href="" target="_blank" id="click_me" ></a> somewhere and perform a click using .click() For ex: document.getElementById('click_me').click()This is as simple as this.
window.open('_link is here_', 'name');
Function description:
name is a name of the window. Following names are supported:
_blank- URL is loaded into a new tab. This is default._parent- URL is loaded into the parent frame_self- URL replaces the current page_top- URL replaces any framesets that may be loaded
1 Comment
if you mean to opening all links on new tab, try to use this jquery
$(document).on('click', 'a', function(e){
e.preventDefault();
var url = $(this).attr('href');
window.open(url, '_blank');
});
2 Comments
a element appended by other event? May you need to change .click with .on('click'You can easily create a new tab; do like the following:
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();
}
2 Comments
I know your question does not specify if you are trying to open all a tags in a new window or only the external links.
But in case you only want external links to open in a new tab you can do this:
$( 'a[href^="http://"]' ).attr( 'target','_blank' )
$( 'a[href^="https://"]' ).attr( 'target','_blank' )
<a target="_blank" href="url">but it's up to the user's browser preferences.