みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

※再質問です。 フォームを3つつくり、トップからの<img>リンクの時は指定フォームにリンクしたい。

※この質問は以前こちらで質問させて頂いた内容と同じですが、
どうしてもうまくいかなかったため、再度質問させて頂きました。

js初心者です。
サブpage(診察予約のリンク先のhtml)で各フォーム(お問い合わせ・予約・ゲストブックなどを)を一つのhtmlにまとめたく、iframeもしくはinnerHTMLを使い、サブメニューでdisplay="none"切り替えなどで、各フォームを切り替えたいと作成し始めたものです。
 サーバーサイドのCGIはKentさんのフリーCGIのClipMailやAjaxを使用する予定でおります。

 ただ条件として、トップのコンテンツ内の「メール相談画像」ボタンからのリンク先はお問い合わせフォームで、通常の横メニューボタン(緑の)の診察予約ボタンからのリンク先は予約フォームがデフォルトとして表示されるようにしたいわけです 。

http://miya-fc-2008.sakura.ne.jp/(ご参考に拝見して頂きたいURLです。)

【フォームの外部jsファイル】
//トップからのリンク時の振り分け(予約フォームかお問合わせフォームかで)

document.body.onload=function(){//読み込みが終われば判定開始

alert('function直後OK');
if(location.search=="?mail_s"){//ファイル名の後に「?mail」が付いていれば
document.getElementById('mail_s').style.display="block";
document.getElementById('f1_title').style.background = 'url(images/sin_yoyaku/toiawase_form_title.gif)';
alert('if処理一回目OK');//「mail」フォームを表示
}
else
if(location.search=="?apo_s"){//「?appoint」ならば
document.getElementById('apo_s').style.display="block";
document.getElementById('f1_title').style.background = 'url(images/sin_yoyaku/yoyaku_form_title.gif)';
alert('if処理二回目OK');
}

else{//それ以外・指示なしのときは
document.getElementById('apo_s').style.display="block";
document.getElementById('f1_title').style.background = 'url(images/sin_yoyaku/yoyaku_form_title.gif)';
}
}


※js側でalertをおいて、デバッグをしぼってみたら、どうやらbody.onloadを読み込んでないようです。この箇所は以前の回答者
の方に教えて頂いた箇所で、自分でどう修正したらよいか分かりません。

アドバイス宜しくお願いします。

投稿日時 - 2008-05-04 10:12:53

QNo.3996385

困ってます

質問者が選んだベストアンサー

>>デバッグをしぼってみたら、どうやらbody.onloadを読み込んでないようです。


「document.body.onload=function(){...}」という記述は
<body>タグの後に記述してください。
もしくはfunctionに名前を与えて
<body>タグのonloadイベントハンドラに記述ください。

例)
<script>
function test(){...}
</script>
<body onload="test()">

No.1の方もおっしゃっていますが
「document.body.onload~」は広く認められた書き方ではありません。
普通は「window.onload~」とします。
「document.body.onload~」はIEでは動きますが、Firefoxといったブラウザでは動きません。

投稿日時 - 2008-05-04 23:26:50

お礼

OKbokuzyo様>
詳しく教えて頂き本当にありがとうございました。
おかげ様で解決しましたし、意味まで把握できました。

投稿日時 - 2008-05-05 09:52:53

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>>> デバッグをしぼってみたら、どうやらbody.onloadを読み込んでないようです。

onloadは、
document.body.onload
ではなく、
window.onload

投稿日時 - 2008-05-04 13:08:21

お礼

auty様>

教えて頂き、本当にありがとうございました。
一発で解決できました。

投稿日時 - 2008-05-05 09:54:34

あなたにオススメの質問