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

javascriptで、引数をつけてファイルを呼び出す方法

Xhtmlファイル

	<form name="myForm">
	<select name="sbox01">
		<option value="1">1月</option>
		<option value="2">2月</option>
		<option value="3">3月</option>
		<option value="4">4月</option>
		<option value="5">5月</option>
		<option value="6">6月</option>
		<option value="7">7月</option>
		<option value="8">8月</option>
		<option value="9">9月</option>
		<option value="10">10月</option>
		<option value="11">11月</option>
		<option value="12">12月</option>
	</select>
	<select name="sbox02">
		<option value="1">1日</option>
		<option value="2">2日</option>
		<option value="3">3日</option>
		<option value="4">4日</option>
		<option value="5">5日</option>
		<option value="6">6日</option>
		<option value="7">7日</option>
		<option value="8">8日</option>
		<option value="9">9日</option>
		         ・
		         ・
		<option value="28">28日</option>
		<option value="29">29日</option>
		<option value="30">30日</option>
	</select>
	<input type="button" value="この日を見る" 
	onclick="open_event_cal(this.form.sbox01.value,
	this.form.sbox02.value);" />
	</form>	

jsスクリプト(open_event_cal()関数)

function open_event_cal(monthA,dayB){
	honjitu = dayB;
	kongetu = monthA;
	if(kongetu==1){
	win = new Window("win01",{url:"event/event1.htm?" + 
	kongetu + "&" + honjitu ,width:400,height:450,
	showEffect:Effect.BlindDown,hideEffect:Effect.BlindUp});
	win.showCenter();
	}
	else if(kongetu==2){
	win = new Window("win02",{url:"event/event2.htm?"+
	kongetu+"&"+ honjitu,width:400,height:450,
	showEffect:Effect.BlindDown,hideEffect:Effect.BlindUp});
	win.showCenter();
	}
        ・
        ・
        ・
        ・	
        ・	
	else if(kongetu==10){
	win = new Window("win10",{url:"event/event10.htm?"+
	kongetu+"&"+ honjitu,width:400,height:450,
	showEffect:Effect.BlindDown,hideEffect:Effect.BlindUp});
	win.showCenter();
	}
	else if(kongetu==11){
	win = new Window("win11",{url:"event/event11.htm?"+
	kongetu+"&"+ honjitu,width:400,height:450,
	showEffect:Effect.BlindDown,hideEffect:Effect.BlindUp});
	win.showCenter();
	}
	else if(kongetu==12){
	win = new Window("win12",{url:"event/event12.htm?"+
	kongetu+"&"+ honjitu,width:400,height:450,
	showEffect:Effect.BlindDown,hideEffect:Effect.BlindUp});
	win.showCenter();
	}
win.setDestroyOnClose();
}

jsスクリプト(event1.htm内のスクリプト)

	var date_data = location.href.split("?")[1];
		var data1=date_data.split("&");
		var month = data1[0];
		var day = data1[1];
			
	day_evnt = new Array(32)

		day_evnt[1] = "●元旦●昭和天皇人間宣言(1946)●少年法施行の日(1948)●国産アニメ第1号「鉄腕アトム」放送開始(1963)大化改新の詔発布(646)●豊臣秀吉生(1536)";
		day_evnt[2] = "●初夢●初売●初荷●書き初め●月ロケットの日●道元生(1200)●上野公園にライオンがくる(1902)";
		day_evnt[3] = "●飛鳥遷都(655)●ジョン万次郎帰国の日(1851)●ひとみの日●カンボジア・ベトナム国境紛争(1978)●ヒラリー南極点に到達(1958)●アラスカがアメリカ合州国49番目の州となる(1959)●ツタンカーメンの墓発見(1922)●天智天皇即位(668)";
		day_evnt[4] = "●官庁御用始め●ニュートン生(1643)●石の日●ソ連がアフガニスタン介入(1980)●名古屋城天守閣の金の鯱の鱗58枚盗まれる(1937)●シュレーディンガー(ドイツ物理学者)没(1961)";
		day_evnt[5] = "●夏目漱石生(1867)●囲碁の日●イチゴの日●豊臣秀吉が朝鮮出兵を命ずる(1592)";
		day_evnt[6] = "●消防庁出初め式●良寛没(1831)●色の日●ジャンヌ・ダルク(フランス英雄少女)生(1412)";
		day_evnt[7] = "●春の七草●昭和天皇死去(1989)●爪切りの日●1000円札(聖徳太子)発行(1950)●岡本太郎(画家)没(1996)";
		day_evnt[8] = "●平成に改元(1989)●ガリレイ没(1642)●勝負事の日●徳川綱吉生(1646)●プレスリー生(1935)●周恩来没(1976)";
		day_evnt[9] = "●明治天皇即位(1867)●とんちの日●マラソンの円谷幸吉自殺(1968)●ナポレオン3世没(1873)●宇野重吉(俳優)没(1988)";
		day_evnt[10] = "●十日えびす●世界初の地下鉄ロンドンを走る(1863)●110番の日●国際連盟発足(1920)●江戸で大火(1794)●徳川綱吉没(1709)●大隈重信(政治家)没(1922)";
		day_evnt[11] = "●鏡開き●蔵開き●東京に初めてのスモッグ警報(1965)●マホメットがメッカに無血入城(630)●伊能忠敬(測量学者)生(1745)";
        ・
        ・
        ・
        ・	
        ・	
		day_evnt[27] = "●日の丸制定(1870)●青函トンネル貫通(1983)●モーツァルト(オーストリア作曲家)生(1756)";
		day_evnt[28] = "●ドストエフスキー(ロシア作家)没(1881)●コピーライターの日●スペースシャトル「チャレンジャー」打ち上げ失敗(1986)●スペイン革命(1930)●日本社会党結成(1906)●クリミア戦争起こる(1854)●生類憐れみの令出る(1687)●スタンリー(イギリス探検家)生(1841)●カール1世(西ローマ皇帝)没(814)";
		day_evnt[29] = "●チェーホフ(ロシア作家)生(1860)●人口調査記念日●パンダのホアンホアン上野動物園に(1980)●";
		day_evnt[30] = "●一年で日中の気温が最も低くなる平均日●マハトマガンジー射殺(1948)●ヒトラーがドイツの首相に就任(1933)●日英同盟締結(1902)●チャールズ1世処刑(1649)●シューベルト(オーストリア作曲家)生(1797)●勝海舟(政治家)生(1823)●河上肇(マルクス経済学者)没(1946)";
		day_evnt[31] = "●マケドニアのアレクサンドロス大王没(B.C.323)●中共軍が北京に正式入城(1949)●シューベルト(オーストリア作曲家)生(1797)●ライト弟(アメリカ発明家)没(1948)";

		document.write("<center> ",month,"月",
		day,"日は</center>")
		document.write(day_evnt[day]);
		document.write("の日です。");

トップページの「今日の出来事」を参考に

Xhtmlファイル

 おわび(トップページの今日の出来事はこの間のリニューアルで無くしました)。まあ、備忘録ということでそのまま載せておきます。それではまずトップページの「今日の出来事」の部分です。ここで、リストから月と日を選べるようにしました。そして、選んだもの(this.form.sbox01.value,this.form.sbox02.value)を引数にして、関数open_event_cal()関数を呼び出します。ここで、this.form.sbox01.valueは、このフォームのsbox01の値という意味で、1月を選んだら1という値が入り、次のthis.form.sbox02.valueはこのフォームのsbox02の値で、20日を選んだら20という値が入ります。

jsスクリプト(open_event_cal()関数)

 次に、open_event_cal()関数です。function open_event_cal(monthA,dayB)のように、引数付きの関数です。それぞれ、monthAには、this.form.sbox01.valueの値(この場合は1が)、dayBにはthis.form.sbox02.valueの値(この場合は20が)が入ります。そして、その値を変数honjituとkongetuに代入しています。そして、kongetuの値によって条件分けをして、prototype windowを呼び出します。このときに、window内に呼び出すhtmlファイルの指定をします。これが(url:"event/event1.htm?"+ kongetu+"&"+ honjitu)の部分です。ここでは、event1.htmファイルを呼び出していますが、その後に「?」をつけて、変数kongetuと変数honjituを&でつないで呼び出しています。先ほどのフォームで選んだものでは結局 event/event1.htm?1&20というurlで呼び出していることになります。

jsスクリプト(event1.htm内のスクリプト)

 次に呼び出されたevent01.htm内のjavascriptです。var date_data = location.href.split("?")[1];では、event01.htmのurlがlocation.hrefで呼び出されます。この場合、引数付きで呼び出されますので、event1.htm?1&20という文字列になります。そして、これをsplit関数で分けます。ここでは、split("?")とあるので、?で分けられていきます。ここでは、location.href.split("?")[1]とあるので、配列の2番目の要素(つまり1&20)が得られます。この値を変数date_dataに格納します。ちなみにlocation.href.split("?")[0]だと、event01.htmが得られます。次にdate_data変数(1&20が入っている)を再びsplit関数で分けます。ここでは、split("&")とあるので、&で分けます。var data1=date_data.split("&");で、分けたデータを配列の形で変数data1に格納しています。ここで、data1[0]には1が、data1[1]には20が格納されていますので、それぞれを変数monthと変数dayに代入します。そして、配列evnt_dayに入っているデータを変数dayの値を添え字として、呼び出して行きます。