![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
<body onload="kansuu()" onunload="kansuu()" onbeforeunload="kansuu()">
</body>
javascriptでkansuuを呼び出すタイミングがイマイチ分かってません。
1回更新ボタンを押せば3つのイベントハンドラが動くのですが、上記のように実行すると実行結果はunbeforeunloadのせいでページが2度更新されてしまいます。
onsubmitにreturn falseがあるようにページを2度更新をしないでonbeforeunloadを実行できるのでしょうか。
あと、kansuu()をいじらずにbody内で処理できるものなのでしょうか。
分かる方ぜひ教えてください
No.1ベストアンサー
- 回答日時:
onloadは画面の表示が終わったタイミング。
画像等があればそれが完全に表示されたら実行されるわ。
(画像が壊れていたら壊れたとこまでの表示)
unloadは現在のページから切り替わるタイミング。
onbeforeunloadはunloadの直前よ。
kansuu()が何しているのかわからないので
2回更新とか意味不明だけど
実行タイミングは上の通りよ。
2回実行されるのが嫌なら
フラグでも立ててやればいいと思うわ。
これ以上は情報不足で何も語れないので
必要ならもっと情報プリーズ。
この回答への補足
すいません説明不足で
調べてみたら、onunloadイベントはあるHTMLの表示を終了して別のページへ移るときに生じるという記述がありました。
HTMLの表示を終了して別のページに移らない方法を教えてください。
2度実行されるというのは1回目がunloadが実行されて2回目が別のページに飛ぶという意味で記述しました。
コレだけで分かりますでしょうか。
No.4
- 回答日時:
うーん
onloadはiframe使えば余裕だけど
onunloadとかはどうやって呼ばせるつもりなのかしら。
ちょっと答えが興味あるわ。
ありがとうございます。iframeを使ってonloadが実行できました。
onunloadの場合はonunload='kansuu();false'を使ってみました。
結果は別のページに飛びますか?の表示が出るようになったのですが、
falseのままOKボタンを押したら別のページ(更新)に移ってしまいダメでした。
また何か分かればレスいただけると嬉しいです。
No.3
- 回答日時:
いまいち何をするのか分からないけど
なんだか面白そうね。
<html>
<body onunload="location.href=location.href;">
<a href="http://www.google.co.jp">ぐーぐる</a>
</body>
</html>
一応こんな風にすれば
リンク「ぐーぐる」をクリックしても
延々同じページを表示し続けるようになるわよ。
もっともその謎解きで有効かどうかは分からないけど。
とりあえず今のとこはこんな感じかな
この回答への補足
お答えいただきありがとうございます。
謎解きのページの公開は原則禁止されておりますが、質問掲示板での投稿を試みましたがいい返事はいただけませんでした。
あまり、方法としてはよくありませんが自作で改良したのをほんの少しだけ公開します。
どうすればよいのかご指導お願いします。
http://www10.atpages.jp/nobolc/a.html
No.2
- 回答日時:
何をしたいのかまったくが判らないわ。
隣にいて見てあげれば判るのかもしれないけど
正直なところ
・あなたが何を作ったのか
・何を目標としているのか
・どうなってしまっているのか
この3つが欠片も判らないの。
とりあえずあなたの補足に対していくつか質問させていただくわね。
その1)
3つのイベントハンドラの実行タイミングは理解できた?
その2)
> HTMLの表示を終了して別のページに移らない方法
処理として別のページに移るような処理を組みこまなければいいのよ?
組み込んでいるってこと?
その3)
> 1回目がunloadが実行されて2回目が別のページに飛ぶ
onunloadとonbeforeunloadで同じ処理をしているてことじゃないの?
ページが移れば両方とも実行されるから
onunloadとonbeforeunloadで同じ関数を呼べば
理論上同じ処理が2回実行されるわ。
単純に考えると
onunloadとonbeforeunloadのどっちか片方だけにすればいいんじゃない?
て思っちゃうんだけど。
そういう問題じゃないのかしら。
この回答への補足
せっかく説明されてたのにどこまで理解できたか申し上げなくてすいませんでした。
>目標はonload、onunload、onbeforeunloadの同時実行です。
3つできれば申し分ないんですが、出来れば2つ以上の実行が望ましいです。
>何を作りたいのかというのには問いにはあるページの謎解きでして50以上のjavascriptイベントハンドラをそのページで実行しないとと次の問題に進めない仕組みになってるというわけです。
>次にどこまで進行してるかというとonload、onunload、onbeforeunloadの別々に単独で動かしてみる作業をしてみたんですが、onloadはonbeforeunloadは成功。onunloadだけは実行はされてるんですが、別のページに飛んでしまいます。
>1の質問に答えさせていただきますと
実行タイミングは先日のご説明で理解できました。ありがとうございます。
>2の質問は謎解きのページの中にswfファイル(実行ファイル)が組み込まれていて<body onunload="kansuu()">と打ち込むと成功しましたとアラート関数で表示されます。ですが、そのページにとどまって欲しいのに更新されてしまいます(別のページにとぶという言い方をしましたが更新されてしまうが正しいです)
すいません話が飛びましたが、
質問の答えは組み込まれたkansuu()がどういう仕組みで動いてるかということは謎解きのページなので隠されたままです。
>その3の質問 そうですね、単体では試しましたがその2つonunloadとonbeforeunloadの場合の実行は試してないのでなんともいえませんが、
おそらく2回更新されると思います。
全部の場合(3つ同時実行と単体実行以外)をまだ試してなかったので勉強になりました。早速試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既存のwebサイトで、ローカルの...
-
if(1){...}とはどういうことで...
-
〔Excel:VBA〕マクロの実行が異...
-
resizeToメソッドが動作しません
-
onload onunload onbeforeunloa...
-
JSPの処理の途中で、JavaScript...
-
VBAの[cellsメソッドは失敗しま...
-
一定時間ごとの実行
-
Javascriptエラーの原因が分か...
-
ページを一回だけリロードさせ...
-
WSH をC#で作ることは可能でし...
-
WebページまたはHTMLソースから...
-
「終了していない文字列型の定...
-
漢字などを正規表現でパターン...
-
エクセルで作製した計算式の入...
-
Webページ中の javascript をVB...
-
メニューバーなしのHTMLページ...
-
JavaScriptで ブラウザの閉じる...
-
htmlのfileタグに自動で値を入...
-
ジャバスクリプトがポップアッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPの処理の途中で、JavaScript...
-
初心者です。gulpでコンパイル...
-
if(1){...}とはどういうことで...
-
C#でボタン名を変更しても動く
-
VBA ステータスバー DoEvents
-
デザイン時のVisible=Falseは実...
-
PowerPointで時計表示
-
〔Excel:VBA〕マクロの実行が異...
-
1つのVBAコードをすべてのコア...
-
既存のwebサイトで、ローカルの...
-
innerHTMLなどの反映タイミング
-
VBA SORT Applyでエラー
-
Excelのマクロ一括実行ができな...
-
resizeToメソッドが動作しません
-
JavaScriptでショートカットキ...
-
jQuery ui Datepicker 明日以降...
-
CTRL + Xを無効にしたい
-
アクセスのフォームでタイマー...
-
javascriptで最初のところに戻...
-
リクエスト結果が一瞬しか表示...
おすすめ情報