• ベストアンサー

window.onload = alertでエラー

window.onload = alert('テスト');とやると、 テストと表示された後、 「実装されていません」というエラーになります。 window.onload = function(){  alert('テスト'); } とやればうまくいくのですが、 window.onload = alert('テスト');では、なぜダメなのでしょうか? また、表示された後、「実装されていません」というエラーが出ることについて、 中でどういう処理が走って、こういう結果になるのでしょうか?

  • re999
  • お礼率61% (476/777)

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

考え方としてはonloadのメソッド(?)を書き変えているのだから 指定できるのは無名関数か引数なしの関数名だということでしょう。 window.onload = alert('テスト'); を素直にみれば、onloadがalert('テスト')の戻り値(この場合undefined)に 置き換えようとしているように解釈されるのでは?

re999
質問者

お礼

ありがとうございましたー

関連するQ&A

  • window.onloadに関数を指定したいです。

    window.onloadに関数を指定したいです。 以下のfoge関数をwindow.onloadに入れる場合は、どうすればいいのでしょうか? function test(){ this.foge = function(){ } } 以下のような感じで、fogeを指定したいのですが。 window.onload=function(){test()} function test(){ } どうすればいいのでしょうか? よろしくお願いします。

  • <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 です。  

  • 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(){ 関数名 } ではまったく動かなかったのでしょう。。。

  • window.onloadでのfunction

    javascript初心者で質問自身が僕が解決したい問題の原因かどうかも解らずに質問しています。 <script type="text/javascript"> <!-- function hoge_1() { ~処理1~ } function hoge_2(hiki_suu) { ~処理2~ } window.onload = function() { document.getElementById("button_1").onclock = hoge_1; document.getElementById("button_2").onclock = hoge_2("watasu"); } // --> </script> 上記のようにページheadにscriptを配置したとします。ページ上のbutton_1がクリックされると処理1が実行されるのですが、hoge_2のように引数を使ってしまうと、onload時に処理2を実行してしまい、button_2は有効に動作しません。 functionの引数の問題なのか、window.onloadの作法なのか、なにが悪いのか全く解らず質問しています。 ご指導のほどよろしくお願いいたします。

  • onloadのタイミング

    HTMLを全て表示したら、処理の結果としてJAVASCRIPTでalertを出しています。 (主にエラーメッセージです) で、onloadを使っているのですが、 表示されないうちに、alertが先に表示され、alertを消す、確認ボタンを押さないで長時間おいておくと、 htmlの表示もされません。 既に表示が終わったと思ってる? 感じです。 これって、仕方が無いことなのでしょうか? 表示が終わらないうちにalertがでるのは諦めるとしても 長時間あけてalertを消した場合、html表示を続行する方法って 無いでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • window.onload=の関数呼出で()が不要

    window.onload=の関数呼び出しで()が不要なのはどうしてでしょうか? ・windowオブジェクトのonloadイベントハンドラだから? ・例えば、imageオブジェクトだったらどうなるでしょうか? hoge = new Image(); hogeに対して何か処理; hoge.onload = kansu; or hoge.onload = kansu(); http://www5e.biglobe.ne.jp/~purest/javascript/zakki/onload.html

  • window.onloadが、ブラウザ(Firefox)で戻る場合に動作しない

    「Flash版地図API」の導入作業をしています。 地図内にマーカーを付けるために、以下のように記述しました。 <script language="JavaScript" type="text/javascript"> <!--常にマーク表示--> window.onload = function() { thisMovie('YFMap').addIcon('tokyo', '35.60714835619635', '139.3955620148672', '<a href="/">東京'</a>, 'L1'); } </script> window.onload は、ブラウザを開くたびに実行されると思います。 IEでは、問題ないのですが、Firefoxの場合、表示されたマークをクリックして次のページへ移動して、その後、ブラウザで戻ってくると、マークが表示されないのです。 どうやら、Firefoxの場合、「window.onload」は、ブラウザから戻ってきた場合は動作していないのでは?と想像しています。 この場合、どのように記述するのが良いのでしょうか?ご指導宜しくお願い致します。 ※ javascriptの知識はほとんどありませんので、具体的なソースで教えて頂きたいです。

  • window.alert グーグルクローム

    グーグルクロームを使用しています。 <html> <head> <title>test</title> </head> <body>   <script type="text/javascript">   <!--     function test() {       window.alert("テストです。");     }   // -->   </script>   <button onClick="javascript:test();">テスト</button> </body> </html> このソースでテストボタンを押すと 画像の様に 「javascriptのアラート」と出ますが 同じコードを自分の作成しているサイトに組み込むと 「javascriptのアラート」の部分が 「ページ ○○.web.fc2.com の記述:」 になります。 ○○は、私のサイトのURLです。 IEで確認すると、 サンプルコードでも自分のサイトでも 「Webページからのメッセージ」になります。 グーグルクロームで 「javascriptのアラート」となる場合と 「ページ ○○.web.fc2.com の記述:」となる場合の違いは何でしょうか?

    • ベストアンサー
    • HTML
  • onloadの実行待ち関数の使い方

    http://d.hatena.ne.jp/ynsyns/20090918/1253265108 ここのサンプルを試してみたいのですが、 使い方がよく分かりません。 addLoad(func);のfuncは何を指しているのでしょうか? また、書く順番はどうなるのでしょうか? ・window.onload = function() { ・window.onload = func() { ・function addLoad(func){ ・addLoad(func); でしょうか? それとも順番は関係ないのでしょうか?

  • alertを出さないと、正常に動作しない

    Javascript初心者です。 現在JavascriptからPHPにデータを送信して、PHP側でデータをjsonで送信し Javascriptで受取り、データを表示しようとしています。 以下、サンプルです。 var jsonData; function aaa(){ var jsonText = XMLHttpRequest(phpからのjson受取) eval('jsonData=' + jsonText ); } function bbb(jsonData){ alert(); //←不要なアラート alert(jsonData[0]); } window.onload = function SetUp(){ aaa(); bbb(jsonData); } bbb内の最初のアラートを出すと、次のアラートでちゃんとデータを表示するのですが、 bbb内の最初のアラートを出さないと、次のアラートでデータが表示されません。 この最初のアラートを出さずにデータを取得する方法はあるのでしょうか? よろしくお願い致します。