• ベストアンサー

onLoad時に複数の処理を実行する方法

<BODY>タグに「onLoad="……"」と記述することで、 ページがロードされた時にある処理をすることができますが、 ロード時に複数の処理を実行したい時はどのように記述すればよいのでしょうか? 具体的に言うと、独自に作成した複数の関数をページをロードした時に使用したいのです。 どなたかご助言お願いします。

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

  • ベストアンサー
  • imeruchan
  • ベストアンサー率43% (45/104)
回答No.1

ヘッダタグ内に <script language="javascript"> <!-- function hoge1{} function hoge2{} ... --> </script> のように複数の関数を記述しておいて、 <body onLoad"hoge1();hoge2;"> と、各関数をセミコロンで区切って書けば良いかと思います。 参考URL中のFAQにも同様の記述があります。

参考URL:
http://www.shiojiri.ne.jp/~openspc/JavaScript/
puntoabart
質問者

お礼

ありがとうございました。 参考URLはお気に入りに入れてたんですけど気づきませんでした。 ちゃんと読まなきゃダメですね…。

関連するQ&A

  • window.onLoad について

    <body> タグに、onload=関数名・・・ と記述するとなぜかオブジェクトがありませんとかで 実行されない時があるため、 <head>タグ内に <script type="text/javascript">  window.onLoad=function(){ 関数名} </script> と記述してみたところ、まったく関数が動作しなくなってしまいました。 ステータスには「ページが表示されました」とでていて、スクリプトエラーにもなっていないようです。 原因がわからず、それならば・・・ htmlを順番に表示していくのだから、htmlの最後のほうに記述すればいいのでは? と思い、 </body>の直前に <script type="text/javascript"> 関数名  ← onloadで動作させる関数 </script> と記述してみたところ、うまく表示できました。 この記述方法って正しいのでしょうか? 環境に依存するのか、毎回悩まされるし、毎回対処方法が違ったりしているので ホントに困っています。 アドバイスお願いします。 #何故 window.onLoad=function(){ 関数名 } ではまったく動かなかったのでしょう。。。

  • <body onload=""> と window.onload

    JavaScriptのonload処理についての質問です。 現在Java、JSP、JavaScript等でWebアプリケーションを作成しているのですが、 bodyタグ中のonloadに記載したファンクションが時々呼ばれないという問題が起きています。 (こんな感じで記述  <body onload="hoge();hogehoge();">  hogehoge()がたまに呼ばれないことがある・・・) これを回避する方法として、「onload処理をwindow.onloadに記述すれば良い」 という話を聞きました。 (こんな感じで記述  <script>    window.onload = function(){ hoge();hogehoge(); }  </script> ) 「bodyタグ中に記述するとたまに呼ばれないものが、window.onloadに記述すると確実に呼ばれる」 なんてことがあるのでしょうか? 「2つめのファンクションが呼ばれない」という現象がたまにしか発生しないので、 window.onloadに記述する方法で確実に呼ばれるようになったという保証がとれません。 知識として知っている方がいれば是非教えていただきたいです。 よろしくお願い致します。 ※ブラウザはIEを使用  バージョンは IE → 6.0      JavaScript → 1.1 です。  

  • onLoad関数

    どうかお願いします、ご教授ください。 BODYタグの中で onLoad()でまずonLoadを呼び出しています。 <body onLoad = "onLoad()"> まだ、このonLoadについて認識不足のために起こる問題だと思うのですが・・・。 フォームからの入力で未入力があればアラームを警告メッセージを表示するようにしました。 しかし、onLoadの中に警告メッセージを出す関数を入れていると動きません。 onLoadに外に置いたら動きます。 どうしてなのでしょうか??? 多分関数の中にある関数だから呼び出す事ができないという事でしょうか。 もしやと思い onLoad.tamesi(); のようにしても駄目でした。 関数の中にある関数うを呼び出すにはどうしたらよいのでしょうか

  • 関数を呼び出すHTMLタグ<body onload="hoge()">について

    ほぼ独学でJavaScriptを学んでいるので、一般的なコード(HTML含め)の書き方が分かりません。 JavaScriptでは、ボタンや画像をクリックすると動作する、 というものが多いですが、そうではなくて、 (それはonclick等で関数を呼び出せば良いことは分かります) 時計のように、アクセスした瞬間から実行されるプログラムを複数書きたい時は、 どのようにするのが妥当でしょうか。 <body onload="hoge()">では、関数hoge()しか実行されないことになりますよね。 そうではなくて、hoge()以外にもいくつかの関数を実行したい時はどうするのが一般的ですか? ここでC言語のように、hoge()をmain関数(int main(void){})のような扱い方にすると、 hoge()関数内で呼び出されている関数も呼び出されることになりますが、そのような書き方で良いですか? アクセスの効率の良さから考えて、他に良いやり方はあるでしょうか。 ・・・前に困ったので<body>タグを2つ付けて2つの関数をonloadアトリビュートで呼び出すという、 奇々怪々なことをやってみて、それでIE7,FireFox3で動いていたので驚いたんですが、 そんなやり方はさすがに御法度ですよね(笑)。 答えにくい質問だと思いますが、アドバイスお願いします。

  • bodyのonloadが実行できない

    後述のカレントディレクトリのコードを bodyのonloadに実行しています。 onloadのコードは次のようにしています。 <body onload="GetHomeDir()"> このコードは次を参考にして作成しました。 http://www.happy2-island.com/vbs/cafe02/capter00111.shtml 全然反応なしです。alertも出ません。どこが悪いのでしょうか? 環境はXP SP3にて作成中です。 var HomeDir ; function GetHomeDir() { var objWshShell = new ActiveXObject("WScript.Shell"); HomeDir = objWshShell.CurrentDirectory ; alert ( "完了" ) ; objWshShell = null ; }

  • アンカークリックのイベントを取得するには??

    <a href="#..." ..> のようなアンカーによる場所の移動だけのタグがあります。 これをクリックしたときに処理を行いたいです。 ただ、多量のタグに対して処理を割り当てたいので、 onClick イベントをaタグにつける方法ではない方法がないかと探しています。 例えば、<body onload="kansuu();"> のようにすればページのロード時に kansuu() を実行してくれます。 が、これではアンカーによる場所移動だけの場合にはページをリロードしないので、kansuu()は呼び出されません。 この <body onload="kansuu();"> のように、一箇所に記載するだけで、 アンカークリック時に実行されるような方法を探しています。 もし分かりましたら教えてください。 なお、クリックした際に、クリック前までのアンカーを得る方法があれば、それも教えてください。 お願いします。

  • onLoadをbodyタグ以外で使用する

    onLoadを使いたいのですが、どうしてもこちらで body タグを変更することができません。 onLoadをbodyタグ内以外の場所で使用することはできる のでしょうか?

  • JavaScriptのonLoadイベントが、発生したり発生しなかったりする。

    ■環境  ・Mac OS X(バージョン10.3.4)  ・Internet Explorer for Mac(バージョン5.2.3) ■詳細  ・HTMLが読み込まれたときにJavaScriptのhogehoge関数を実行させたいため   HTMLの<BODY>タグを下記のように記述している。    <BODY "onLoad=hogehoge()">  ・当該HTMLを読み込んだとき、あるときはhogehoge関数が実行されるが   あるときは実行されない。   →onLoadイベントが発生していないよう。  ・上記現象に再現性なし。  ・他ブラウザでは、当該HTMLのonLoadイベントは必ず発生する。   確認したブラウザは下記の組み合わせ。    ・Mac OS 9(9.2.4) + Internet Explorer 5(5.1.7)    ・Mac OS 9(9.2.4) + Netscape 4.7    ・WindowsXP + IE6.0(SP2)    ・WindowsXP + Netscape 4.77 ■質問  ・上記現象は、Internet Explorer for Mac(バージョン5.2.3)の   既知の障害でしょうか。  ・回避方法(onLoadイベントを必ず発生させる方法)はありますでしょうか。

  • イベントハンドラに処理を追加するには?

    例えばbodyタグのonloadイベントハンドラに JavaScriptを使って処理を追加するにはどうすればよいのでしょうか? 例) ・rei.htm <html>  <script language="JavaScript" type="text/javascript">  function hoge(){   alert("hogeです");  }  function foo(){   alert("fooです");  }  </script>  <body onload="hoge();">  </body>  <script language="JavaScript" type="text/javascript">  document.body.onload += foo();  </script> <html> ※前提条件として、変更可能な箇所はscriptタグ内のみとなります。 「こんなんでいけないかな?」と思って上記のようにやってみたのですがうまくいきませんでした。 (結果はfoo()のみ実行され、hoge()は実行されませんでした。 alertでbody.onloadの中身を確認すると『function anonymous{hoge();}undefined』と表示されるので、なぜfoo()が実行されてhoge()が実行されないのかよくわかりませんが‥) また試しに document.body.onload += foo(); これを以下のように変更してみました。 document.body.onload = foo(); この時は、 ・foo()の実行  ↓ ・javascriptエラー  ↓ ・hoge()の実行 となりました。(これもなぜこうなるのかよくわかりせん) 以上、イベントハンドラに最初から任意に入れられている処理を残しつつ、 さらに処理を加えるにはどうすればよいのかご教示お願いします。

  • onload onunload onbeforeunloadのタイミング

    <body onload="kansuu()" onunload="kansuu()" onbeforeunload="kansuu()"> </body> javascriptでkansuuを呼び出すタイミングがイマイチ分かってません。 1回更新ボタンを押せば3つのイベントハンドラが動くのですが、上記のように実行すると実行結果はunbeforeunloadのせいでページが2度更新されてしまいます。 onsubmitにreturn falseがあるようにページを2度更新をしないでonbeforeunloadを実行できるのでしょうか。 あと、kansuu()をいじらずにbody内で処理できるものなのでしょうか。 分かる方ぜひ教えてください