HTML 4.0 Strict および XHTML 1.0 STRICT では、<a> タグ内での target 属性の使用は許可されていません。これは Web デザイナーにとってはもどかしいことですが、移行仕様では依然として許可されています。問題は解決できる。
target 属性は HTM14.0 仕様から削除されましたが、別の属性 rel が追加されました。この属性は、リンクを含むドキュメントとリンクされたドキュメントの間の関係を指定するために使用されます (例: :next、previous、chapter、section)、これらの属性のほとんどは、大きなドキュメント内の小さな部分間の関係を定義するために使用されます。実際、この仕様では、開発者が特定のことを行うために非標準の属性値を自由に使用することができます。応用。
ここでは、rel 属性の外部のカスタム値を使用して、新しいウィンドウを開くリンクをマークします。
最新の Web 標準に準拠していないリンク コード:
<a href=document.html target=_blank>外部リンク</a>
rel 属性を使用します。
<a href=document.html rel=external>外部リンク</a>
Web 標準に準拠した新しいウィンドウへのリンクを構築したので、JavaScript を使用して新しいウィンドウを実装する必要もあります。スクリプトで行う必要があるのは、ドキュメント内で rel=external として定義したウィンドウをすべて検索することです。 Web ページが読み込まれるとき。
まずブラウザを決定する必要があります。
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) &&
アンカー.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) &&
アンカー.getAttribute(rel) == 外部)
アンカー.ターゲット = _blank;
}
}
window.onload = 外部リンク;