ホームページ  >  記事  >  ウェブフロントエンド  >  Web ページが新しいウィンドウで開きます target=_blank は、standards_Experience 交換を満たしていません

Web ページが新しいウィンドウで開きます target=_blank は、standards_Experience 交換を満たしていません

WBOY
WBOYオリジナル
2016-05-16 12:05:502191ブラウズ

「この要素には属性ターゲットがありません(この HTML バージョンでは)」

HTML4.01/XHTML1.0/XHTML1.1 では厳密な DOCTYPE、target="_blank"、target=" であることがわかりました。 _self" 構文が無効なので、JavaScript を介してのみ実装できます。

友人から、なぜ target="_blank" が使用できないのかと尋ねられました。この属性は非常に便利です。あはは、W3C の専門家がどう考えているかは知りませんが、私の知る限りでは、外国人はユーザーの同意や明確な指示なしに新しいウィンドウを開くのは失礼だと考えているため、主に「使いやすさと親しみやすさ」について考えています。の。このキャンセルが合理的かどうかは別として、解決策を見てみましょう。

rel 属性
HTML4.0 では、新しい属性 rel が追加されています。この属性は、リンクとリンクを含むページとの関係、およびリンクのターゲットを記述するために使用されます。 rel には、次、前、章、セクションなどの多くの属性値があります。使用したいのは rel="external" 属性です。コードは元々次のように書かれていました:


新しいウィンドウを開く


現在は次のように書かれています。次のように:新しいウィンドウを開く

これは、厳格な基準に準拠した方法です。もちろん、効果を発揮するには JavaScript と組み合わせる必要があります。

javascript
完全なコード JS は次のとおりです:

function externallinks() {
if (!document.getElementsByTagName) return;
varアンカー = document.getElementsByTagName (" a");
for (var i=0; i var anchors = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "外部")
anchor.target = "_blank";
}
}
window.onload = externallinks;

これを .js ファイル (external.js など) として保存し、外部接続メソッドを通じて呼び出すことができます: <script></script>

これで完了です。

最後に、私の Web サイトで使用されている target="new" は、暫定的な DOCTYPE の下で許可されていますが、厳密な基準を満たしていません。次のリビジョンでは strict モードを使用し、すべての target="new" を rel="external" に変更する予定です。

この記事は次の記事を参照しています。

「標準に準拠した世界の新しいウィンドウ リンク」 (Kevin Yank 著)
「target="_blank" の標準ベースの置換」外部リンク 》
2006.7.13更新
多くのポータルサイトのトップページはポップアップ形式になっていますが、少なくとも中国では当分この概念は変えられないと思います。各リンクの下に rel を追加します。完全なコードは次のとおりです:

<script>//<![CDATA[ <BR>function externalLinks() {  <BR>    if (!document.getElementsByTagName) return;  <BR>    var anchors = document.getElementsByTagName("a");  <BR>    for (var i=0; i<anchors.length; i++){   <BR>        var anchor = anchors; <BR>        if   (anchor.getAttribute("href"))     <BR>        anchor.target ="_blank"; <BR>    } <BR>} <BR>window.onload = externalLinks; <BR>//]]></script>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。