Set Link Target
このJavaScriptは2001年3月に発売された著書「わたしにもできる動くホームページ」に収録したものです。Internet Explorer 4の頃に作成しました。
リンク集に使うと便利なスクリプトです。リンク先を表示する場合に、以下のうちどこへ表示するのかを利用者が選べるようにします。
- そのまま通常表示する(同一Windowに表示)
- 新しく開いて表示(リンク集を元に1つだけWindowを開いてそこに表示)
- 常に新しく開いて表示(常に新しいWindowを開いてそこに表示)
function setLinkTarget(listbox,startAnchor,endAnchor) {
for (lp=startAnchor;lp<endAnchor;lp++) {
document.links[lp].target=listbox.value;
}
}
<head>~</head>内で上記のように記述しておいてください。
<FORM name="selinkform" style="margin:1px;font-weight:normal;">リンクの処理方法
<SELECT name="selink" size="1" onchange="setLinkTarget(this,処理開始位置,処理終了位置);">
<OPTION value="_top" selected>通常表示</OPTION>
<OPTION value="linktarget">新しく開いて表示</OPTION>
<OPTION value="_blank">常に新しく開いて表示</OPTION>
</SELECT>
</FORM>
これがリンクの処理を選択する部分です。初期値として指定したいOPTION要素にselectedを記述します。続くオプションは処理開始位置と処理終了位置で、リンク制御をする範囲を指定します。例えば、setLinkTarget(this,2,document.links.length-1);とした場合は、ページ内の最初の2つのリンクと最後の1つのリンク以外が処理対象になります。
<body onload="setLinkTarget(document.selinkform.selink,処理開始位置,処理終了位置);">
なお、上記のようにBODY要素のONLOAD属性で実行しておくことをお薦めします。これを省略した場合、キャッシュにページが残っていた場合や通常表示以外を初期値した場合に意図せぬ動作をしてしまいます。