ターゲットを一度で全て変えるには?

[上に] [前に] [次に]
エリアス 2000/03/20(月) 20:41:50
radioボタンを使ってリンクのターゲットを"_blank"か"_top"に選択できるリンク集を作っています。
現在は、たとえば"_blank"の方を選択すると、
function blank(){
document.links[0].target = "_blank";
document.links[1].target = "_blank";
document.links[2].target = "_blank";
document.links[3].target = "_blank";
}
という関数を呼び出して、リンクのターゲットを変えるという方法をとっているのですが、
リンクが増えるたびにいちいちスクリプトも追加しなければならないので管理が大変です。

ターゲットを一括で変更する方法はないでしょうか?

びーだま [E-Mail] 2000/03/20(月) 21:33:24
こんな風にしたらどうでしょう?

function blank() {
  for (var i = 0; i < document.links.length; i++) {
    document.links[i].target = "_blank";
  }
}

もう一歩進めるなら、_blank にも、_top にも1つの
ファンクションで対応出来るようにしてみましょう。

ヒントは、ファンクションに引数を渡します。

エリアス 2000/03/20(月) 22:26:24
びーだまさんありがとうございます!早速教えていただいた方法でためしたところうまくいきました。1つのファンクションで対応できるというのも作ってみました。

function targetChange(place) {
  for (var i = 0; i < document.links.length; i++) {
    document.links[i].target = place;
  }
}

これでtargetChange('_top')という様にすればいいと思うのですが、どうでしょうか?

びーだま [E-Mail] 2000/03/21(火) 02:04:37
良いのではないでしょうか。(^-^)

それにしても、target をスイッチして使う。っていう手、
いいですね。なにか機会があったら使おうっと。

リンクにさわったら、右側とかに
「フレームを解除して開く」
「新しいウインドウで開く」
 って選択肢が出るようにするとかもできますね。
 鬱陶しいかな?(^^;

Aurai 2000/03/21(火) 05:46:11
<form name="TargetSelect">
_brank<input type="radio" name="Target" value="_brank" checked>
_top<input type="radio" name="Target" value="_top">
</form>
<a href="hoge1.html" onClick="clicklink(this)">LINK 1</a>
<a href="hoge2.html" onClick="clicklink(this)">LINK 2</a>
<script>
<!--
function clicklink(t){
  for(i=0;i<document.TargetSelect.Target.length;i++){
    if (document.TargetSelect.Target[i].checked)
      t.target = document.TargetSelect.Target[i].value;
  }
}
//-->
</script>

こんなのとか
でも、リンクにonClickが設定してあってなんだか美しくないですね
これでリンク一つ一つにonClickを設定しない方法も出来ると思います
私は挫折してしまいましたが(--;

杉山 [HomePage] 2000/03/21(火) 08:29:06
私はとほほさんのJavaScriptのサンプルを使っています。
ラジオボタンじゃなくてチェックボックスですが。
http://www.tohoho-web.com/wwwjssm2.htm
ここの「別ウィンドウに表示」を制御する
のソースにプラスして<HEAD>部分に一行
<BASE TARGET="out">をつけるだけ。
あとはただ単純にリンクをはっていけばよいのです。
プライベートのリンク集を使う時、モニターの大きさによって
開き方を変えています。

エリアス 2000/03/21(火) 23:53:12
[[解決]]
他にも色んな方法があるみたいですね。とにかくありがとうございました。
トップやブランク以外にも色々使える汎用的なものができたので、とても満足してます。

[上に] [前に] [次に]