HTML 4.0 Strict および XHTML 1.0 STRICT では、<a> タグ内で target 属性を使用することはできません。これは Web デザイナーにとってイライラすることです。暫定仕様では引き続き使用が許可されています。しかし、特定の方法を使用すると、この問題を解決できます。
target 属性は HTMl4.0 仕様から削除されましたが、別の属性 rel が追加されました。この属性は、リンクを含むドキュメントとリンクされたドキュメントの間の関係を指定するために使用されます。その属性値 (次、前、章、セクションなど) は仕様で定義されています。これらの属性のほとんどは、大きなドキュメントの小さな部分間の関係を定義するために使用されます。実際、この仕様では、開発者が特定のアプリケーションに対して標準以外のプロパティ値を自由に使用することができます。
ここでは、rel 属性の外部のカスタム値を使用して、新しいウィンドウを開くリンクをマークします。
最新の Web 標準に準拠していないリンク コード:
<a href="document.html" target="_blank">外部リンク</a>
rel 属性を使用します。
<a href="document.html" rel="external">外部リンク</a>
Web 標準に準拠した新しいウィンドウへのリンクを構築したので、JavaScript を使用して新しいウィンドウを実装する必要もあります。スクリプトが実行したいことは、Web ページの読み込み時に、rel="external" として定義されているドキュメント内のすべてのハイパーリンクを検索することです。
まずブラウザを決定する必要があります
if (!document.getElementsByTagName) が戻る;
getElementsByTagName は DOM1 標準の使いやすいメソッドであり、現在ほとんどのブラウザでサポートされています。Netscape 4 や IE4 などの一部の古いブラウザは DOM1 をサポートしていないため、このメソッドが存在するかどうかを判断して除外する必要があります。これらの古いバージョンのブラウザ。
次に、getElementsByTagName メソッドを通じてドキュメント内のすべての <a> タグを取得します。
var アンカー = document.getElementsByTagName("a");
アンカーは各 <a> タグを含む配列として割り当てられます。次に、各 <a> タグをループして変更する必要があります。
for (var i=0; i < アンカーの長さ; i++) {
var アンカー = アンカー;
新しいウィンドウを開きたい場所で <a> タグを見つけます。
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "外部")
次に、属性値ターゲットを作成し、値「_target」を割り当てます。
アンカー.ターゲット = "_blank",
完全なコード:
関数 externalLinks() {
if (!document.getElementsByTagName) が戻る;
var アンカー = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var アンカー = アンカー;
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "外部")
アンカー.ターゲット = "_blank";
}
}
window.onload = 外部リンク;