target="_blank"を使わずに別ウィンドウを開く

| | コメント(0) | トラックバック(0)

ハイパーリンクを設定するa要素には次のようにtarget属性に"_blank"を指定すると新規のウィンドウを開いてリンク先を読み込むことができる。

<a href="http://kumao.net/" target="_blank">別ウィンドウで開きます。</a>

別のウエブサイトへのリンクは、新規のウィンドウで開く方が便利だとか、またそうあるべきだと言う意見も多い。

しかし、このtarget属性はXHTML 1.1、XHTML 4.01、XHTML1.0 Strictにおいては未定義で使用できない。

その理由は、制作者側の都合でウィンドウを制御してしまうことであり、別ウィンドウを開くかどうかという選択権をユーザーから奪うことになるためらしい。

仮に制作者側がtarget="_blank"を指定しなくても、別ウィンドウで開きたいユーザーは自ら操作して(Windowsの場合は、Shiftキーを押しながらマウスの左クリック)実行可能である。

しかし、実際にはよそ様のウエブサイトにリンクする場合など、新規のウィンドウで開きたい事がある。

その方法としては次のようなJavaScriptを使う事が有望である。

<a href="kumao.net/" onclick="window.open('kumao.net/'); return false;">別ウィンドウで開きます。</a>

こらなら、ステータスバーにリンク先が表示され、JavaScript が off でもリンク先に飛ぶことがでるが、いちいちonclick〜と毎回書くのが面倒なのでもっといい方法が無いかと調べた結果次の記述を参考に rel= "external"という方法を使わせていただくことにした。

Opening a link in a new window - the valid way

-------------------------------------------------
//external.js
function externalLinks(){
if(!document.getElementsByTagName){
return;
}
var _1=document.getElementsByTagName("a");
for(var i=0;i<_1.length;i++){
var _3=_1[i];
if(_3.getAttribute("href")&&_3.getAttribute("rel")=="external"){
_3.target="_blank";
}
}
}

window.onload=externalLinks;
----------------------------------------------------

このjsファイルをインクルードし、次のように aタグにrel="external"と指定と別ウィンドウで開く。

<a href="kumao.net/" rel="external">別ウィンドウで開きます。</a>

トラックバック(0)

このブログ記事を参照しているブログ一覧: target="_blank"を使わずに別ウィンドウを開く

このブログ記事に対するトラックバックURL: http://kumao.net/mt/mt-tb.cgi/18

コメントする

KUMAOの押入TOP

カウンタ

Twitter

books

最近のブログ記事

このブログ記事について

このページは、kumaoが2008年2月 7日 23:04に書いたブログ記事です。

ひとつ前のブログ記事は「.htaccessによる認証」です。

次のブログ記事は「オブジェクトを半透明(CSS)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

にほんブログ村 IT技術ブログへ
無料テンプレートならテンプレートキング

books