HTML-アンダースコア付きのtarget =“ _ blank”の歴史的または技術的な理由


14

今日まで私はなぜtarget="_blank"にならないのかと思っていtarget="blank"ます。ブラウザもこれを理解できると確信しています。

この決定/仕様の歴史的または技術的な理由はありますか?


target概念全体は、HTML 5でまだ許可されていますが、一般に時代遅れであると考えられています。w3.org/community/webed/wiki/HTML_links_-_lets_build_a_web7 Frames and popups — just say noセクション内)
イェンスミューレンホフ14年

1
この質問がこのサイトのStackOverflowに移行されなかった理由を誰かが説明できますか?私の意見では、これはSOには完璧な選択であり、SUには非常に弱い選択です。
トレジェ

回答:


21

target="blank"リンクを使用する場合は、新しいタブ/ウィンドウでリンク開きます。ただし、微妙な違いがあります。もう一度リンクをクリックすると、新しいウィンドウを開く代わりに、最初に開いたウィンドウが再利用されます。

これはtarget、新しいウィンドウを開くだけでなく、属性を使用できるためです。4つの組み込み値がありますが、独自のターゲットを指定することもできます。関連するW3 Schoolsページを見ると、次のオプションが表示されます。

  • _blank リンクされたドキュメントを新しいウィンドウまたはタブで開きます
  • _self リンクされたドキュメントがクリックされたときと同じフレームで開きます(これはデフォルトです)
  • _parent リンクされたドキュメントを親フレームで開きます
  • _top リンクされたドキュメントをウィンドウ全体で開きます
  • <framename> リンクされたドキュメントを名前付きフレームで開きます

これの多くは、HTMLフレームについて少し理解しない限り意味がありません。HTML <frameset>タグを使用すると、ブラウザウィンドウを、それぞれ独自のページを持つ個々のセクション(フレーム)に分割できます。フレームに名前を付けtarget、リンクで属性を使用することにより、関連するコンテンツを表示するフレームを制御できます。

ただし、ブラウザが適用する必要のあるターゲット属性にはいくつかの追加ルールがあります。

  • ターゲットがユーザー指定の名前である場合、文字で始まる必要があります(アンダースコア、数字などは使用できません)
  • ターゲットがユーザー指定の名前であるが、その名前に一致するフレーム/ウィンドウがない場合、その名前を使用して新しいタブ/ウィンドウを作成します。これが、target="blank"そのように機能する理由です。

_blank特別な場合があるため、基本的に現在の規約を変更する理由はありません。元の種類のフレームはこれ以上使用されない場合がありますが、ターゲット属性が機能する名前付きオブジェクトを使用できる場合があります。たとえば、ページに直接埋め込まれた単一フレームであるiframeです。標準を変更すると、多くの既存のページが破損し、何のメリットもありません。


7
:あなたは、W3Schoolsのを参照すべきではありませんw3fools.com
イェンスMühlenhoff

2
W3SchoolsがWebデザインガイドラインに最適ではないことや、target属性を持つリンクの使用が時代遅れであることには同意しません。ただし、元の質問に具体的に答えるために情報を使用していました。
ジェームズP 14年

1
問題があると知られているリソースにリンクするのは良い考えではないと思います。あなたの答えは結構です。
イェンスミューレンホフ14年

1
追加のtarget="_blank"属性は不要であることを望みましたが、代わりに、URLにアスタリスクなどの記号を追加することができます<a href="*https://www.stackoverflow.com">Stackoverflow</a>。それは非常に多くのタイピングを節約するでしょう:)
Kai Noack
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.