How to open link in a new tab in HTML?
Asked Answered
P

12

643

I'm working on an HTML project, and I can't find out how to open a link in a new tab without JavaScript.

I already know that <a href="http://www.WEBSITE_NAME.com"></a> opens the link in the same tab. Any ideas how to make it open in a new one?

Paulitapaulk answered 17/7, 2013 at 22:9 Comment(3)
use <a href="url" target="_blank">...</a>Gilbertegilbertian
As Rohit says, add the param target="_blank", however, on FireFox at least if you do two underscores target="__blank" it will open in a new tab, but clicking other links using the same double underscore, opens the new pages in the previous new tab, meaning you only have one additional tab open.Dudleyduds
You no longer need to use rel="noopener" while using target="_blank", it is added by default sourceImbed
E
995

Set the target attribute of the link to _blank:

<a href="#" target="_blank" rel="noopener noreferrer">Link</a>

For other examples, see here: http://www.w3schools.com/tags/att_a_target.asp


Note

I previously suggested blank instead of _blank because, if used, it'll open a new tab and then use the same tab if the link is clicked again. However, this is only because, as GolezTrol pointed out, it refers to the name a of a frame/window, which would be set and used when the link is pressed again to open it in the same tab.


Security Consideration!

The rel="noopener noreferrer" is to prevent the newly opened tab from being able to modify the original tab maliciously. For more information about this vulnerability read the following articles:

Eolian answered 17/7, 2013 at 22:11 Comment(10)
The special targets all start with an underscore. blank would be the name of a frame or window. It may seem to work, because a new window or tab will probably be opened when none exists with the name 'blank', but a second click on the link should open the page in that same tab again instead of opening yet another one.Greasy
Well, I guess it isn't invalid, it's just different. Instead of blank you could just as well use foo, I think, while _blank actually has a special meaning. I can't find any information to prove otherwise. Can you?Greasy
So, if you want two or more links on a page to each open in its own new separate tab, then you should not use _blank for those links, because then they will all open in the same new tab.Scabies
@Scabies No, _blank will be fine; the links will each open in a different tab. If you specify a name without the underscore, (e.g. blank) the links will open in the same tab.Eolian
@Eolian I apologize - you are actually correct. I got confused.Scabies
A tip: be aware of vulnerability due _blank. More info medium.com/@jitbit/…Rhynd
Another page with the vulnerability mathiasbynens.github.io/rel-noopener which it is an example by itself.Pomerleau
I only need to open a new tab without focusing on it. How can we do that?Paries
the security issue is going away, see caniuse.com/mdn-html_elements_a_implicit_noopenerPathfinder
Just putting "#" in href= is not a good idea. This means the link can't be see at the bottom of the window before opening and also means it can't be copied from right-click menu so there's no way of seeing where the link is pointing to in advance (unless you view source code).Overstuffed
L
137

Use one of these as per your requirements.

Open the linked document in a new window or tab:

 <a href="xyz.html" target="_blank"> Link </a>

Open the linked document in the same frame as it was clicked (this is default):

 <a href="xyz.html" target="_self"> Link </a>

Open the linked document in the parent frame:

 <a href="xyz.html" target="_parent"> Link </a>

Open the linked document in the full body of the window:

 <a href="xyz.html" target="_top"> Link </a>

Open the linked document in a named frame:

 <a href="xyz.html" target="framename"> Link </a>

See MDN

Leonardaleonardi answered 12/7, 2014 at 18:55 Comment(4)
Thanks for the information. How to open the link in new tab when clicked?Manuscript
Use the code in html, as shared above. Most of the new browsers open the links in a new tab by default when you use target="_blank"Leonardaleonardi
Have in mind that target="_blank" has a vulnerability, you can read about it in mathiasbynens.github.io/rel-noopenerPomerleau
I'm not sure why they call it a frame instead of a tab or window. For me, a name of NL creates a new tab every time. Some of the comments (and other sources) say that using the same name will use the same tab. That is what I wanted, but instead, each click creates another new tab instead of changing the contents of the first one.Gasbag
N
51

If you would like to make the command once for your entire site, instead of having to do it after every link. Try this place within the Head of your web site and bingo.

<head>
<title>your text</title>
<base target="_blank" rel="noopener noreferrer">
</head>

hope this helps

Nicholenicholl answered 5/11, 2015 at 13:29 Comment(2)
don't forget to add rel="noopener noreferrer"Haaf
The base tag does not support the rel attribute.Luz
S
19

Use target="_blank":

<a href="http://www.example.com/" target="_blank" rel="noopener noreferrer">This will open in a new window!</a>
Sugihara answered 17/7, 2013 at 22:11 Comment(0)
C
12

When to use target='_blank' :

The HTML version (Some devices not support it):

<a href="http://chriscoyier.net" target="_blank">This link will open in new window/tab</a>

The JavaScript version for all Devices :

The use of rel="external" is perfectly valid

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
    $('a[rel="external"]').attr('target', '_blank');
</script>

and for Jquery can try with the below one:

$("#content a[href^='http://']").attr("target","_blank");

If browser setting don't allow you to open in new windows :

href = "google.com";
onclick="window.open (this.href, ''); return false";
Comines answered 5/11, 2015 at 13:57 Comment(1)
don't forget to add rel="noopener noreferrer"Haaf
G
8

target="_blank" attribute will do the job. Just don't forget to add rel="noopener noreferrer" to solve the potential vulnerability. More on that here: https://dev.to/ben/the-targetblank-vulnerability-by-example

<a href="https://www.google.com/" target="_blank" rel="noopener noreferrer">Searcher</a>
Geelong answered 22/6, 2018 at 7:58 Comment(1)
Another explanation of the vulnerability here: mathiasbynens.github.io/rel-noopenerHaaf
B
7

You can use the target attribute for opening a link in new tab:

<a href="https://google.com" target="_blank">Google Link</a>

OR

<a href="https://google.com" target="blank">Google Link</a>

DIFFERENCE

_blank will always open the link in a new tab.

blank will open the link in a new tab on the first opening, but all following openings will reuse/update the existing tab.

Bush answered 30/10, 2022 at 19:31 Comment(0)
B
5

You can use:

<a href="http://www.WEBSITE_NAME.com"  target="_blank"> Website</a>

However the above make your site vulnerable to phishing attacks. You can prevent it from happening in some browsers by adding rel="noopener noreferrer" to your link. With this added, the above example becomes:

<a href="http://www.WEBSITE_NAME.com" rel="noopener noreferrer" target="_blank">Website.com</a> 

check out for more information: https://www.thesitewizard.com/html-tutorial/open-links-in-new-window-or-tab.shtml

Bragg answered 2/3, 2019 at 10:59 Comment(0)
A
4

You could do it like this:

<a href="http://www.WEBSITE_NAME.com" target="_blank" rel="noopener noreferrer">Open</a>

Originally was:

<a href="http://www.WEBSITE_NAME.com"></a>

Also look at the following url on MDN for more information about security and privacy:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#Security_and_privacy

which in turn has a link to a good article named Target="_blank" - the most underestimated vulnerability ever:

https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/

Appendage answered 8/5, 2020 at 10:15 Comment(0)
B
1

The simple way to open the link in a new tab is to add a target attribute in the link having a value equals to "_blanl", like this :

<a href="http://www.WEBSITE_NAME.com" target="_blank"></a>
Boride answered 11/7, 2020 at 6:41 Comment(0)
C
1

If anyone is looking out for using it to apply on the react then you can follow the code pattern given below. You have to add extra property which is rel.

<a href="mysite.com" target="_blank" rel="noopener noreferrer" >Click me to open in new Window</a>
Cantor answered 18/9, 2020 at 20:35 Comment(0)
S
1

In case of React, if anyone wants to open link in a new tab. Please use from react-router-dom, because <a href="/path"></a> refresh full page, even though if your page changes only some text or image on the new route. For Link usage please refer here

Summit answered 26/5, 2021 at 11:12 Comment(4)
Given that the question is not about react, it'd be helpful to at least post a code example that react users could copy paste.Chronicles
@Chronicles I have share the link in the answer, that include nice example and usagesSummit
The problem with links on SO is that they might not work anymore in the future and your answer would be not helpful anymore. That's why SO prefers self-contained answers where links are only additional resources not those, the answer heavily relies on.Chronicles
Thanks for letting me know about this, I will add the example soon.Summit

© 2022 - 2024 — McMap. All rights reserved.