プロが教える店舗&オフィスのセキュリティ対策術

よろしくお願いします。

子ウィンドウ側の地下鉄南北線という文字リンクをクリックすると
00:北24条駅","01:札幌駅","02:大通駅"が親ウィンドウのセレクトメニューに反映されるように変えたいのです。下記のスクリプトを使ってどのように親ウィンドウと子ウィンドウに分ければいいのでしょうか?
駅名の数はそれぞれのリンクによって違います。

<html>
<head>
<title>セレクトメニューで選択したものに応じて2つめのセレクトメニューに反映させる</title>
<script language="JavaScript" type="text/JavaScript">
<!--
var data = new Array(":交通",":地下鉄南北線",":地下鉄東西線",":地下鉄東豊線");
var data0 = new Array(":---");
var data1 = new Array("00:北24条駅","01:札幌駅","02:大通駅");
var data2 = new Array("10:西18丁目駅","11:西11丁目駅","12:大通駅","13:バスセンター前","14:東札幌");
var data3 = new Array("20:札幌駅","21:大通駅","22:豊水すすきの");

function SetList(objid, arr){
var obj = document.getElementById(objid);
for(i=obj.length; i>=0; i--){ obj.options[i] = null; }
for(i=0; i<arr.length; i++){
var a = arr[i].split(":");
obj.options[i] = new Option(a[1], a[0]);
}
}
//-->
</script>
</head>
<body onLoad="SetList('sel0', data);">
<form name="form1">
<select id="sel0" name="sel0" style="width:160px;" onChange="SetList('sel1', eval('data' + this.selectedIndex))">
<option>---</option>
</select>
<select id="sel1" name="sel1" style="width:160px;">
<option>---</option>
</select>
</form>
</body>
</html>

どなたか教えていただける方がいましたらどうぞよろしくお願いいたします。

A 回答 (1件)

子ウィンドウで文字リンクをクリックした時に


window.opener.関数名
で親ウィンドウの関数を呼べば良いと思います。
親ウィンドウの関数は
function fromChildWindow(flg)
として、子ウィンドウで呼ぶときにflgに選択したリンクを示す値を入れれば良いと思います。
後は、親ウィンドウの関数でflgを使って処理を行えばよいと思います。

私などより全然きれいなスクリプトのソースですね。
こっちも勉強になりました。
    • good
    • 0
この回答へのお礼

torakiyojpさんお返事ありがとうございます!

わかりました!
子ウィンドウ側にも
<!--
var data1 = new Array("00:中央区","01:南区","02:北区");
var data2 = new Array("10:旭川市");
var data3 = new Array("20:函館市");

function SetList(objid, arr){
var obj = document.getElementById(objid);
for(i=obj.length; i>=0; i--){ obj.options[i] = null; }
for(i=0; i<arr.length; i++){
var a = arr[i].split(":");
obj.options[i] = new Option(a[1], a[0]);
}
}
//-->
を置いて、リンクで
window.opener.SetList('sel0', data1)でデータを呼び出すようにしたらうまくいきました!

大変勉強になります。
どうもありがとうございました。

お礼日時:2003/11/21 18:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!