target =“ _ blank”とtarget =“ _ new”


512

新しいタブ/ウィンドウでリンクを開くだけの場合<a target="_new"><a target="_blank">との違いは何ですか?


73
現在のアンサーの概要:_new特別な意味はありません。あなたも書くことができ_white_little_lambます。
アルバロゴンサレス

10
@ x3ro「_new」に特別な意味がないと言うのはどうして間違っているのですか?
アルバロゴンサレス

3
@ÁlvaroG.Vicario私は「あなたは...代わりに書くことができる」と言っていました。しかし、それについて考えると、「特別な意味はない」は「明示的に推奨されていない」と同じではないと私は主張しますが、それは私がつまらないことかもしれません;)
fresskoma 14

5
target="_blank"なしでの使用rel="noopener"はセキュリティ上の脆弱性の可能性があることを皆さんに思い出させてください。rel="noopener"詳細については、検索してください。
Flimm 2017

回答:


651

「_blank」を使用

HTML5仕様によると:

有効なブラウジング・コンテキスト名は U + 005F LOW LINEの文字で始まっていない少なくとも一つの文字と任意の文字列です。(アンダースコアで始まる名前は、特別なキーワード用に予約されています。)

有効なブラウジング・コンテキスト名またはキーワードは、どちらかの有効なブラウジング・コンテキスト名であるかのいずれかのASCIIの大文字と小文字を区別しない試合である任意の文字列です:_blank、_self、_parent、または_top「 - 。ソース

つまり_new、HTML5のようなキーワードはなく、HTML4(したがってXHTML)にもありません。つまり、これをターゲット属性の値として使用しても、一貫した動作はありません。

セキュリティに関する推奨事項

DanielとMichaelがコメントで指摘した_blankように、信頼できないWebサイトを指すターゲットを使用する場合は、さらにを設定する必要がありますrel="noopener"。これにより、オープニングサイトがJavaScriptを介してオープナーを混乱させることがなくなります。詳細については、この投稿を参照してください。


7
太字のテキストを仕様から除外すると、その引用は混乱を招くようになります。「A valid browsing context nameまたはキーワードはa valid browsing context nameまたは...のいずれかの文字列です。」と読みました
Alex Grin

6
@ lyoshenka、@ x3ro:私は自由に前の段落を引用に追加しました。これで混乱が解消されます。
メルカトル、2011

5
@aesede:仕様を読んでください。彼らはない「my_custom_nameは」アンダースコアで始まることはできませんので、有効。したがって、「new」は問題ありませんが、「_ new」は問題です。
14

7
セキュリティの観点から
Daniel F

6
人々はまた、追加すべきことを追加することを検討してくださいrel="noopener noreferrer"によるJavaScriptの攻撃の脆弱性target="_blank"
マイケル・

126

を使用target="_blank"すると、ユーザーがリンクをクリックしたときに、新しいブラウザタブまたはウィンドウを作成するようにブラウザに指示します。

target="_new"仕様によると、使用は技術的に無効ですが、私の知る限り、すべてのブラウザは同じように動作します。

  • コンテキスト名「_new」のタブまたはウィンドウを検索します
  • 「_new」タブ/ウィンドウが見つかった場合、URLがロードされます
  • 見つからない場合は、新しいタブ/ウィンドウがコンテキスト名「_new」で作成され、URLがそれにロードされます

Note target="_new"はとまったく同じように動作target="new"し、後者は有効なHTMLですが、前者は無効なHTMLです。

これにいくつかの混乱を加え、HTML4ではtarget属性は廃止されました。HTML5では、この決定は逆転し、仕様の正式な部分になりました。すべてのブラウザーtargetは、使用しているHTMLのバージョンに関係なくサポートしますが、doctypeがHTML4の場合、一部のバリデーターは使用を非推奨としてフラグを立てます。


4
つまり、基本的に、に2つ(またはそれ以上)のリンクがあるtarget="_new"場合、両方が同じタブで開き、一方が他方を上書きしますか?
art-solopov 2015

4
@ art-solopovは私の知る限り、はい、それがすべてのブラウザーで起こります。ただし、「_ new」はターゲットに対して無効な値であるため、実行しないでください。
Abhi Beckert、2015

25

TL; DR
USE _blank

target属性は、リンクされたドキュメントを開く場所を指定します。

USAGE: target="xyz"  [don't forget double quotes]

_blank  Opens the linked document in a new window or tab
_self   Opens the linked document in the same frame as it was clicked (this is default)
_parent     Opens the linked document in the parent frame
_top    Opens the linked document in the full body of the window 
framename   Opens the linked document in a named frame

SINCE "_new"はこれらのいずれにも該当せず、 "framename"の下に表示されるため、ユーザーがそのハイパーリンクを再度クリックしても、新しいタブは開かず、既存のタブが更新されます。一方、_blankでは、ユーザーが2回クリックすると、2つの新しいタブが開きます。


21

これは古い質問であり、正しい答えである「使用_blank」が何度か言及されていることは知っていますが、使用<a target="somesite.com" target="_blank">Link</a> するとセキュリティ上のリスクがあります。

使用することをお勧めしますパフォーマンス上の利点):

<a href="somesite.com" target="_blank" rel="noopener noreferrer">Link</a>

1
:セキュリティリスクの側面上だけでいくつかの追加の読書jitbit.com/alexblog/...
8bithero

14

これは以前に尋ねられた可能性がありますが:

「target = "_ newを指定するすべてのリンク」は、そのウィンドウを名前で検索して見つけ、そのウィンドウで開きます。

target = "_ blankを使用すると、「現在のウィンドウの上に、新しいウィンドウが毎回作成されます。」

ここから:http : //thedesignspace.net/MT2archives/000316.html



12

target = whateverその名前のフレーム/ウィンドウを探すのは私の理解です。見つからない場合は、その名前の新しいウィンドウが開きます。場合whatever == "_new"、あなたが使用しているかのように表示されます_blank除いて.....

予約済みのターゲット名の1つを使用すると、「検索」フェーズがバイパスされます。したがって、target = "_blank"1ダースのリンクでは12の空白のウィンドウがtarget = whatever開きますが、1ダースのリンクでは1つのウィンドウしか開きません。target = "_new"ダースリンクでは、動作が不安定になる場合があります。私はいくつかのブラウザで試したことはありませんが、1つのウィンドウしか開かないはずです。

少なくともこれが私がルールを解釈する方法です。


9

注意-常に「引用符」を含めることを忘れないでください-少なくともChromeではtarget=_blank(引用符なし)は(引用符付き)と同じではありませんtarget="_blank"

後者は、各リンクを新しいタブ/ウィンドウで開きます。前者(引用符がない)は、クリックした最初のリンクを1つの新しいタブ/ウィンドウで開き、同じタブ/ウィンドウを、クリックする後続の各リンクで上書きします(引用符もない名前です)。


非常に良い点です。_blankを引用符で囲まなかったときにこの問題に遭遇しました。新しく作成した「空の」タブからクリックしたリンクは、新しいタブを開くのではなく、そのタブ内のコンテンツを上書きするものでした。_blankを引用符で囲むと、Chromeは毎回新しいタブを開きます。
Steve Scherer、2015年

また、「_ BLANK」ではなく「_blank」を使用してください。Chromeは実際には大文字小文字の区別が難しく、「_ BLANK」を使用して新しいタブを何度も開くことはありません。
Steve Scherer

5
  • ターゲット値としての_blankは、毎回新しいウィンドウを生成します。
  • _newは1つの新しいウィンドウのみを生成します。

また、_newのターゲット値でクリックされたすべてのリンクは、以前に生成されたウィンドウにロードされたページを置き換えます。

ここをクリックして、いつ_blankまたは_new使用して、自分で試してみることができます。


_new説明されているように、どのブラウザを尊重するかリストできますか?
Dima Tisnek 14

@qarmaその動作は、私が知っているすべてのブラウザで説明されているとおりで、_new魔法のキーワードではなく、単なる名前です。その名前のウィンドウが存在する場合は再利用し、そうでない場合は開きます。そのウィンドウの複数のリンクをクリックすると、複数の新しいページを開くのではなく、指定されたウィンドウで異なるページを開くだけになります。
スクレイガー2014

仕様は実際にブラウザに対してignore、下線で始まるがキーワードではないターゲットであることを示唆しています。無効なターゲット名を「無視」したときにブラウザが何をすべきかについての提案はありません。(1)「_blank」のように扱う(2)ウィンドウ名のように扱う(違法なアンダースコアがなかったかのように)(3)明示的に空のウィンドウ名のように扱う(4)そこのように扱うターゲット属性ではありませんでした。-どのブラウザーでも、どの解釈でも選択できます。
ジェシーチザム2015年

0

リンクのtarget属性により、ブラウザーは宛先ページを新しいブラウザーウィンドウで開くように強制します。使い方_blankの目標値として使用しながら、新しいウィンドウを毎回出現します_new唯一のspawn 1新しいウィンドウと、すべてのリンクはの目標値でクリックしますと、_newページを置き換えます以前に生まれたウィンドウに読み込ま


0

新しいタブ/ウィンドウでリンクを開くには、を使用します<a target="_blank">

_blank=対象のブラウジングコンテキスト:新しいもの:ブラウジング設定に応じたタブまたはウィンドウ

_new=無効。要素のターゲット属性のHTML5にはそのような値はありません

要素のすべての値を持つターゲット属性:ビデオデモ


-1

_Newの使用は、Iframeされたページで作業するときに役立ちます。target = "_ blank"はトリックを行わず、同じiframeでページを開くので... target newはiframeページの最良のソリューションです。ちょうど私の5セント。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.