« へろへろで帰宅 | トップページ | 次男幼稚園二百九十七日目 »

2010.12.02

Firefoxの戻るボタンでGoogleMapが表示されない場合の対処(スクリプトのキャッシュ対策)

Firefoxで、GoogleMapsの地図を表示しているページへ戻るボタンで戻ってきたとき、地図が空白になってしまった。IEでは問題なし。他のブラウザは知らん。リロードすればちゃんと表示される。

HEAD要素の最初のSCRIPT要素でGoogle Maps APIを取り込んでいる(ハイライト部分)のだが、このスクリプトがFirefoxではキャッシュされているようで、実は戻るボタンの時だけではなく、2回目の表示時には実行されていないみたい。ダメじゃんFirefox。どうすんのMozilla。

<html>
<head>
<script type="text/javascript" src= "http://maps.google.com/maps/api/js?sensor=false"> </script>
<script type="text/javascript"> function initGMap () { var latlng = new google.maps.LatLng( 34.64945, 135.00125); var myOptions = { zoom: 14, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map( document.getElementById("map"), myOptions); } </script> </head> <body onload="initGMap();" onunload="GUnload();"> <div id="map" style="width:500px;height:300px;"> </div> </body> </html>

どうにかして毎回読み込ませなくてはならない。読み込んだら実行してくれるでしょう、多分。

思案の末、上のハイライト部分を以下のように・・・。

<script type="text/javascript">
document.write('<' + 'script src="'
+ 'http://maps.google.com/maps/api/js?sensor=false'
+ '&' + (new Date()).getTime()
+ '" type="text/javascript"><' + '/script>');
</script>

スクリプト要素の中でdocument.writeを使ってスクリプト要素を書いちゃう。スクリプトのURLにはダミーのパラメータをくっつけ、毎回違ったURLにしてキャッシュを阻止。荒業といえば荒業か?常套手段でもあるのだろうか?

しかし、これで解決したからよかった。IEでも動作したし。他は知らんがとりあえず備忘録として。

« へろへろで帰宅 | トップページ | 次男幼稚園二百九十七日目 »

プログラミング」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« へろへろで帰宅 | トップページ | 次男幼稚園二百九十七日目 »

2020年7月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
フォト

Google AdSense

銀の弾丸

無料ブログはココログ

他のアカウント