![HTML - アンダースコア付きの target="_blank" の歴史的な理由か技術的な理由か?](https://rvso.com/image/1395403/HTML%20-%20%E3%82%A2%E3%83%B3%E3%83%80%E3%83%BC%E3%82%B9%E3%82%B3%E3%82%A2%E4%BB%98%E3%81%8D%E3%81%AE%20target%3D%22_blank%22%20%E3%81%AE%E6%AD%B4%E5%8F%B2%E7%9A%84%E3%81%AA%E7%90%86%E7%94%B1%E3%81%8B%E6%8A%80%E8%A1%93%E7%9A%84%E3%81%AA%E7%90%86%E7%94%B1%E3%81%8B%3F.png)
target="_blank"
今日まで、なぜが にならないのか疑問に思っていましたtarget="blank"
。ブラウザもこれを理解できるはずです。
この決定/仕様には歴史的または技術的な理由があるのでしょうか?
答え1
target="blank"
リンクを使用する場合意思新しいタブ/ウィンドウで開きます。ただし、微妙な違いがあります。リンクをもう一度クリックすると、新しいウィンドウが開くのではなく、最初に開いたウィンドウが再利用されます。
これは、この属性が単に新しいウィンドウを開く以外にも使用できるためですtarget
。この属性には4つの組み込み値がありますが、独自のターゲットを指定することもできます。関連するW3 スクールページ次のオプションが表示されます。
_blank
リンクされたドキュメントを新しいウィンドウまたはタブで開きます_self
リンクされたドキュメントを、クリックしたのと同じフレームで開きます (これがデフォルトです)_parent
リンクされた文書を親フレームで開きます_top
リンクされた文書をウィンドウの本体全体で開きます<framename>
リンクされた文書を名前付きフレームで開きます
HTML フレームについて少し理解していないと、このほとんどが意味をなさないでしょう。HTML<frameset>
タグを使用すると、ブラウザ ウィンドウを個別のセクション (フレーム) に分割し、それぞれに独自のページを作成できます。フレームに名前を付け、target
リンクで属性を使用すると、どのフレームに関連コンテンツを表示するかを制御できます。
ただし、ブラウザが適用する必要がある target 属性には、いくつかの追加ルールがあります。
- ターゲットがユーザー指定の名前である場合は、文字で始まる必要があります (アンダースコア、数字などは使用できません)。
- ターゲットがユーザー指定の名前であるが、その名前に一致するフレーム/ウィンドウがない場合は、その名前を使用して新しいタブ/ウィンドウを作成します。これが、
target="blank"
このように動作する理由です。
基本的に、これは特別なケースなので、現在の規則を変更する理由はありません_blank
。元の種類のフレームはもうあまり使用されないかもしれませんが、ターゲット属性が機能する名前付きオブジェクトを持つことができるケースは他にもあります。たとえば、ページに直接埋め込まれた単一のフレームである iframe などです。標準を変更すると、多くの既存のページが壊れ、メリットはありません。