• 締切済み

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の知識はほとんどありませんので、具体的なソースで教えて頂きたいです。

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

検索してみたところ </script>の前に window.onunload= function(){} を、追加するといいようです。

関連するQ&A

  • <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の作法なのか、なにが悪いのか全く解らず質問しています。 ご指導のほどよろしくお願いいたします。

  • Firefoxでwindow.close()が効きません

    Win、MacともIEでは問題ないのですが、Firefoxでwindow.close()が効きません。 Firefoxのバージョンは、Windows→1.0.7、Mac→1.5.0.1です。 ソースは以下のとおりです。 <form> <input type="button" name="Submit" value="ウィンドウを閉じる" onClick="javascript:window.close();"> </form> また、以下の方法も試してみたのですが動作しませんでした。 <SCRIPT language="JavaScript"> <!-- function CloseWin(){ window.close(); } // --> </SCRIPT> <FORM> <INPUT type="button" value="ウィンドウを閉じる" onClick="CloseWin()"> </FORM> aタグのターゲットブランクで別ウィンドウを開いた場合です。よろしくお願いいたします。

  • onloadイベントで二つの操作をやりたいのですがどうすればいいでしょうか?

    javascriptでファイルを読み込んだらイベントを発生させる"onload"イベントでわからないことがあります。 ↓以下のように一つのonloadイベントで二つの操作をしたいのですがどうすればよいでしょうか? 分けて記述してしまうと作動しません。 かといって <body onload="MM_preloadImages('/images/global/menu_00_ro.gif'),load_my_rss">とするわけにもいきません。 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ <script language="javascript"> function load_my_rss(){ get_rss("http://www.*******.jp/make_rss/rss1.rdf"); } window.onload = load_my_rss; </script> <body onload="MM_preloadImages('/images/global/menu_00_ro.gif')"> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ どうすれば↓の二つの操作をほぼ同時に行えるでしょうか? window.onload = load_my_rss; onload="MM_preloadImages どなたかよいアドバイスをお願いします。

  • 1ページ内で複数のwindow.onload = functionの動作

    Ajaxを使用して取得してきたRSSをinnerHTMLで表示するスクリプトを1ページ内に複数設置したいのですが、うまくいきません。 prototype.jsを使うと複数のonloadを制御できるという記事を参考にしたのですが、動作しませんでした。(WindowsIE6で検証してます) http://hori-uchi.com/archives/2005_09.html BODY以下のソースはこちらです。現状だとどちらか一つだけなら動作する感じです。これをどちらも動作する方法をご教授いただけませんでしょうか。宜しくお願いします。 //RSS取得1箇所目 <div id="p1">roading1</div><script> window.onload = function(){ var u = document.getElementsByTagName("head")[0].appendChild(document.createElement("script")); u.type = "text/javascript"; u.charset = "utf-8"; u.src = "http://###"; } var xml = {}; xml.onload = function(data){ var items1 = data.items; var g = "\n"; for(var i = 0; i < Math.min(items1.length, 20); i++){ // } document.getElementById("p1").innerHTML = g; } </script> //RSS取得2箇所目 <div id="p2">roading2</div><script> window.onload = function(){ var u = document.getElementsByTagName("head")[0].appendChild(document.createElement("script")); u.type = "text/javascript"; u.charset = "utf-8"; u.src = "http://***"; } var xml = {}; xml.onload = function(data){ var items2 = data.Result; var h = "\n"; for(var i = 0; i < Math.min(items2.length, 20); i++){ // } document.getElementById("p2").innerHTML = h; } </script>

  • window.openについて

    ブラウザのメニューバーやアドレスバーを非表示する為に色々と調べていますがうまく調べる事ができませんでした。 自分なりに調べて記述して実行してみましたが動きがバラバラで・・・ <SCRIPT type="text/javascript">   window.open('http://localhost/menu.html', 'menu', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,left=0,top=0');   if(document.all){     window.opener = true;   }   window.close(); </SCRIPT> JavaScriptは使った事があまりなくどうか皆さんのお知恵を私にお貸し下さい。 対象のブラウザはIE、Firefox、Opera、Safariです。 申し訳ありませんがアドバイス等をいただけませんでしょうか。 些細な事でも何でも構いませんのでご教授宜しくお願いします。

  • window.onloadなどあらかじめ用意された物以外でページが最後

    window.onloadなどあらかじめ用意された物以外でページが最後まで読み込まれたか判定したいです。 条件を書きますね。 1.window.onloadなど直接head要素、またbodyの各イベント属性に記述は出来ない状態です。 2.掲示板の上部にフリーテキストの部分があり、その部分のみ扱えます。使えるタグが制限されています。インライン要素はstrongブロック要素はdivです。このためインラインでスクリプトを書いて行きます。 window.onloadが発生した後やwindow.onabortが発生して ちょっと経った後にブラウザが「読み込みすでに完了済み」や 「読み込みを中断済み」のような何らかの値をどこかに格納したりしないのでしょうか。 また代替処置をするならばどんなスクリプトが有効でしょうか。 なるべく色んなページに対応したいです。 例えばbodyの中身が全部読まれているか判定したり、 一番最後の要素が読まれたかどうか判定するスクリプトです。 もっとも一番最後の要素が読まれたかどうかを判定するアナログなやり方だと window.onabortの時などイレギュラーな時に うまく行かないので出来るだけ何か画期的なものを探しています。 JSが好きな方々、よろしくお願いします。

  • FireFoxでJavascript「window.close()」が効きません。

    別ウィンドウを開いて「閉じる」ボタンをクリックするとウィドウを閉じる、というレイアウトを作成しているのですが、 <A HREF="javascript:window.close()">ウインドウを閉じる</A> では、firefoxでは動作しません。 情報を探してみて、以下のようなソースが有効なようなのですが、 <head>の中に以下を記述。 <script type="text/javascript" language="JavaScript"> <!-- function close_win(){ var nvua = navigator.userAgent; if(nvua.indexOf('MSIE') >= 0){ if(nvua.indexOf('MSIE 5.0') == -1) { top.opener = ''; } } else if(nvua.indexOf('Gecko') >= 0){ top.name = 'CLOSE_WINDOW'; wid = window.open('','CLOSE_WINDOW'); } top.close(); } --> </script> で、閉じるボタンを置きたい場所に <A HREF="javascript:close_win()">ウインドウを閉じる</A> が、ローカルで見ている範囲ですが、動作しません。 ページ内リンクみたいにページトップに戻るだけ。。。 ちなみにIEとネスケでは正常に動作しました。 どなたかお分かりになる方、ご教授願えませんか? 宜しくお願いします。

  • onloadイベント発火条件

    window.onload <body onload="function(){}"> <img src="hoge.jpg" onload="function(){}"> <script src="hoge" onload="funct" でも <div>や<p>ではonloadイベントは無いですよね? どういう場合にonloadイベントは発火するんでしょうか? window , body ,その他srcがあるdom でしょうか? ブラウザ依存もあるでしょうが、仕様的なものはどうなってますでしょうか?