• ベストアンサー

※再質問です。 フォームを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を読み込んでないようです。この箇所は以前の回答者 の方に教えて頂いた箇所で、自分でどう修正したらよいか分かりません。 アドバイス宜しくお願いします。

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

  • ベストアンサー
  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.2

>>デバッグをしぼってみたら、どうやら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といったブラウザでは動きません。

WebRunva
質問者

お礼

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

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

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

WebRunva
質問者

お礼

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

関連するQ&A