219

I am diverting user to some url through window.location but this url opens in the same tab in browser. I want it to be open in new tab. Can I do so with window.location? Is there another way to do this action?

4
  • 3
    Duplicate: stackoverflow.com/questions/427479/… Commented Sep 26, 2011 at 11:05
  • 1
    Is window.location a requirement? Or can other JS solutions be offered ? Commented Sep 26, 2011 at 11:05
  • @Khez: other JS can be offered. Commented Sep 26, 2011 at 11:33
  • you can use the window.open() Commented Jun 7, 2021 at 12:51

7 Answers 7

597
window.open('https://support.wwf.org.uk', '_blank'); 

The second parameter is what makes it open in a new window. Don't forget to read Jakob Nielsen's informative article :)

Sign up to request clarification or add additional context in comments.

2 Comments

but what if your browsers has blocked settings on popup? this will not wok.
@Alex meh...not really the "right" answer. Trying this in Firefox, where I prevent pop-up windows, this code fails.
61

You can even use

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

This will open it on the same tab if the pop-up is blocked.

1 Comment

I would avoid this solution because window.open in some cases could return null (but still open a new window as expected) while also triggering location.replace on the current tab resulting in two open tabs with the new url. Using a try/catch described in this answer may be a better solution stackoverflow.com/a/27725432/811533.
54

I don't think there's a way to do this, unless you're writing a browser extension. You could try using window.open and hoping that the user has their browser set to open new windows in new tabs.

1 Comment

No need to hope, just pass _blank as the second parameter :) window.open(url, '_blank');
25

This works for me on Chrome 53. Haven't tested anywhere else:

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

Comments

13

with jQuery its even easier and works on Chrome as well

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

Comments

8

Rather going for pop up,I personally liked this solution, mentioned on this Question thread 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(); }); 

Working example.

Comments

0

We have to dynamically set the attribute target="_blank" and it will open it in new tab. document.getElementsByTagName("a")[0].setAttribute('target', '_blank')

document.getElementsByTagName("a")[0].click()

If you want to open in new window, get the href link and use window.open

var link = document.getElementsByTagName("a")[0].getAttribute("href");

window.open(url, "","height=500,width=500");

Don't provide the second parameter as _blank in the above.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.