What's the difference between <a target="_new">
and <a target="_blank">
and which should I use if I just want to open a link in a new tab/window?
相关问题
- Views base64 encoded blob in HTML with PHP
- Is there a way to play audio on a mobile browser w
- HTML form is not sending $_POST values
- implementing html5 drag and drop photos with knock
-
Why does the box-shadow property not apply to a
Using
target="_blank"
will instruct the browser to create a new browser tab or window when the user clicks on the link.Using
target="_new"
is technically invalid according to the specifications, but as far as I know every browser will behave the same way:Note
target="_new"
will behave exactly the same astarget="new"
, and the latter is valid HTML while the former is invalid HTML.Adding some confusion to this, in HTML4 the
target
attribute was deprecated. In HTML5 this decision was reversed, and it is an official part of the spec once again. All browsers supporttarget
no matter what version of HTML you are using, but some validators will flag the use as deprecated if your doctype is HTML4.it's my understanding that
target = whatever
will look for a frame/window with that name. If not found, it will open up a new window with that name. Ifwhatever == "_new"
, it will appear just as if you used_blank
except.....Using one of the reserved target names will bypass the "looking" phase. So,
target = "_blank"
on a dozen links will open up a dozen blank windows, buttarget = whatever
on a dozen links will only open up one window.target = "_new"
on a dozen links may give inconstant behavior. I haven't tried it on several browsers, but should only open up one window.At least this is how I interpret the rules.
The target attribute of a link forces the browser to open the destination page in a new browser window. Using
_blank
as a target value will spawn a new window every time while using_new
will only spawn one new window and every link clicked with a target value of_new
will replace the page loaded in the previously spawned windowIn order to open a link in a new tab/window you'll use
<a target="_blank">
.value
_blank
= targeted browsing context: a new one: tab or window depending on your browsing settingsvalue
_new
= not valid; no such value in HTML5 for target attribute on a elementtarget attribute with all its values on a element: video demo
Use "_blank"
According to the HTML5 Spec:
That means that there is no such keyword as
_new
in HTML5, and not in HTML4 (and consequently XHTML) either. That means, that there will be no consistent behavior whatsoever if you use this as a value for the target attribute.Security recommendation
As Daniel and Michael have pointed out in the comments, when using target
_blank
pointing to an untrusted website, you should, in addition, setrel="noopener"
. This prevents the opening site to mess with the opener via JavaScript. See this post for more information.I know this is an old question and the correct answer, use
_blank
, has been mentioned several times, but using<a target="somesite.com" target=_blank>Link</a>
is a security risk.It is recommended ( performance benefits) to use
<a href="somesite.com" target="_blank" rel="noopener noreferrer">Link</a>