新しいタブ/ウィンドウでリンクを開くだけの場合<a target="_new">、<a target="_blank">との違いは何ですか?
_new」に特別な意味がないと言うのはどうして間違っているのですか?
target="_blank"なしでの使用rel="noopener"はセキュリティ上の脆弱性の可能性があることを皆さんに思い出させてください。rel="noopener"詳細については、検索してください。
新しいタブ/ウィンドウでリンクを開くだけの場合<a target="_new">、<a target="_blank">との違いは何ですか?
_new」に特別な意味がないと言うのはどうして間違っているのですか?
target="_blank"なしでの使用rel="noopener"はセキュリティ上の脆弱性の可能性があることを皆さんに思い出させてください。rel="noopener"詳細については、検索してください。
回答:
HTML5仕様によると:
有効なブラウジング・コンテキスト名は U + 005F LOW LINEの文字で始まっていない少なくとも一つの文字と任意の文字列です。(アンダースコアで始まる名前は、特別なキーワード用に予約されています。)
有効なブラウジング・コンテキスト名またはキーワードは、どちらかの有効なブラウジング・コンテキスト名であるかのいずれかのASCIIの大文字と小文字を区別しない試合である任意の文字列です:_blank、_self、_parent、または_top「 - 。ソース
つまり_new、HTML5のようなキーワードはなく、HTML4(したがってXHTML)にもありません。つまり、これをターゲット属性の値として使用しても、一貫した動作はありません。
DanielとMichaelがコメントで指摘した_blankように、信頼できないWebサイトを指すターゲットを使用する場合は、さらにを設定する必要がありますrel="noopener"。これにより、オープニングサイトがJavaScriptを介してオープナーを混乱させることがなくなります。詳細については、この投稿を参照してください。
valid browsing context nameまたはキーワードはa valid browsing context nameまたは...のいずれかの文字列です。」と読みました
を使用target="_blank"すると、ユーザーがリンクをクリックしたときに、新しいブラウザタブまたはウィンドウを作成するようにブラウザに指示します。
target="_new"仕様によると、使用は技術的に無効ですが、私の知る限り、すべてのブラウザは同じように動作します。
Note target="_new"はとまったく同じように動作target="new"し、後者は有効なHTMLですが、前者は無効なHTMLです。
これにいくつかの混乱を加え、HTML4ではtarget属性は廃止されました。HTML5では、この決定は逆転し、仕様の正式な部分になりました。すべてのブラウザーtargetは、使用しているHTMLのバージョンに関係なくサポートしますが、doctypeがHTML4の場合、一部のバリデーターは使用を非推奨としてフラグを立てます。
target="_new"場合、両方が同じタブで開き、一方が他方を上書きしますか?
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つの新しいタブが開きます。
これは古い質問であり、正しい答えである「使用_blank」が何度か言及されていることは知っていますが、使用<a target="somesite.com" target="_blank">Link</a> するとセキュリティ上のリスクがあります。
使用することをお勧めします(パフォーマンス上の利点):
<a href="somesite.com" target="_blank" rel="noopener noreferrer">Link</a>
これは以前に尋ねられた可能性がありますが:
「target = "_ newを指定するすべてのリンク」は、そのウィンドウを名前で検索して見つけ、そのウィンドウで開きます。
target = "_ blankを使用すると、「現在のウィンドウの上に、新しいウィンドウが毎回作成されます。」
target = whateverその名前のフレーム/ウィンドウを探すのは私の理解です。見つからない場合は、その名前の新しいウィンドウが開きます。場合whatever == "_new"、あなたが使用しているかのように表示されます_blank除いて.....
予約済みのターゲット名の1つを使用すると、「検索」フェーズがバイパスされます。したがって、target = "_blank"1ダースのリンクでは12の空白のウィンドウがtarget = whatever開きますが、1ダースのリンクでは1つのウィンドウしか開きません。target = "_new"ダースリンクでは、動作が不安定になる場合があります。私はいくつかのブラウザで試したことはありませんが、1つのウィンドウしか開かないはずです。
少なくともこれが私がルールを解釈する方法です。
注意-常に「引用符」を含めることを忘れないでください-少なくともChromeではtarget=_blank(引用符なし)は(引用符付き)と同じではありませんtarget="_blank"。
後者は、各リンクを新しいタブ/ウィンドウで開きます。前者(引用符がない)は、クリックした最初のリンクを1つの新しいタブ/ウィンドウで開き、同じタブ/ウィンドウを、クリックする後続の各リンクで上書きします(引用符もない名前です)。
また、_newのターゲット値でクリックされたすべてのリンクは、以前に生成されたウィンドウにロードされたページを置き換えます。
ここをクリックして、いつ_blankまたは_newを使用して、自分で試してみることができます。
_new説明されているように、どのブラウザを尊重するかリストできますか?
_new魔法のキーワードではなく、単なる名前です。その名前のウィンドウが存在する場合は再利用し、そうでない場合は開きます。そのウィンドウの複数のリンクをクリックすると、複数の新しいページを開くのではなく、指定されたウィンドウで異なるページを開くだけになります。
ignore、下線で始まるがキーワードではないターゲットであることを示唆しています。無効なターゲット名を「無視」したときにブラウザが何をすべきかについての提案はありません。(1)「_blank」のように扱う(2)ウィンドウ名のように扱う(違法なアンダースコアがなかったかのように)(3)明示的に空のウィンドウ名のように扱う(4)そこのように扱うターゲット属性ではありませんでした。-どのブラウザーでも、どの解釈でも選択できます。
_new特別な意味はありません。あなたも書くことができ_white_little_lambます。