インターネットサイトを開けません。操作は中断されました
Google Maps + IE の環境で発生するエラーは IFrame にすることで回避できることはわかったけど、シンプルな html に書いた場合は現象が発生しないので腑に落ちないです。
エラーが発生するのとしないのを突き詰めていったら div 要素がネストしていると現象が発生することがわかりました。
発生する例:
<div>
<div id="map" style="width: 300px; height: 300px"></div>
</div>
<script type="text/javascript">
var map = new GMap(document.getElementById("map"));
..........
発生しない例:
<div id="map" style="width: 300px; height: 300px"></div>
<script type="text/javascript">
var map = new GMap(document.getElementById("map"));
..........
一般的な blogware でエントリを書いている以上 div はネストしまくりなので良く発生するものと思われます。
うまい回避策はないだろうか・・。
ちなみに span 要素を使ってみると地図表示がおもしろおかしいレイアウトになってしまい回避策にならないです。
補足:
結局 IE は onload で API を呼びだすようにするのが良いみたい。
こんな感じで↓
function myfunc(){
//Google Maps API を呼びだす
}
document.body.onload = myfunc();
ただし、既に onload があった場合にオーバーライドしてしまうといけない。
ちゃんと後で onload にあった処理は呼びだすこと。
こんな感じで↓
var defaultOnload = document.body.onload;
function myfunc(){
//Google Maps API を呼びだす
defaultOnload();
}
document.body.onload = myfunc();
さらに、Firefox では document.body.onload という表現が解釈してもらえない。
ブラウザを判別して IE の場合だけ onload をオーバーライドするのが無難。
blog に地図はりつけるのにイチイチスクリプト書くの面倒なので、自動化する簡単なアプリケーションが "Google Maps 簡単貼り付け"。
どこかの誰かが同じようなの作ってくれている気もするけど、まぁ Google Maps の練習ということで。
Google Maps で好きな場所を表示した状態で Bookmarklet で帰ってこられるので楽です。
・Google Maps 簡単貼り付け
http://yusuke.homeip.net/diary/2006/03/13/1142236775693.html
・続簡単Google Maps
http://yusuke.homeip.net/diary/2006/03/14/1142325346061.html
・続続簡単Google Maps
http://yusuke.homeip.net/diary/2006/03/18/1142666358114.html
