ホームページを作成に関する備忘録

リンクでtarget _blankを使わないようにする

このページのコードはすべてこれを使っています。

JavaScriptファイル

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

Xhtmlファイル

<body onload="externalLinks()">
<a href="#" rel="external">リンクはこちらから</a>
</body>

Xhtmlでの組込み方について

 <a href="#" target="_blank">リンク</a> のようにするとリンクをクリックすると新しいウィンドウなどで開きます。しかしXHTML 1.1 などでは、aタグにtargetを使えなくなるということです。Shift+クリックで新しく開けるのですが、みんな分かっているわけでないですね。しかし外部リンクの時に同じウィンドウやタグに出てくると、自分のページに戻ってもらうのにブラウザの「戻る」などが必要となるので、新しいウィンドウやタグで開くようにできないかといろいろと調べてみると、やはりいろいろと考えている人がいます。JavaScriptのコード自身はどこかに出所があるのかほとんど同じなので、ここでもそのまま上げておきます。やっていることは、Htmlコード内のaタグについて調べ、hrefがあり、relにexternalが設定されている場合に、targetに_blankを設定するという内容です。この関数をbodyのonloadで実行します。ただ、新しい窓を勝手に開くのはあまりよくないようなので、あくまでも外部リンクだけにこの設定をしています。