• 締切済み

GoogleMapのIEでのバグ

以下の状況に大変悩んでおります、ご教授いただけたら幸いです。 東京都のとある場所を中心としてマップを表示するHTMLページを tokyo.htmlとして作成し、親ページのparent.html内の<IFRAME>タグで tokyo.htmlを読み込んで表示しているのですが、 極々一部のPCのInternetExplorer(IE6.0以上)で中心がマップの左上隅になってしまう現象が発生しております。 OperaやFirefoxではこのようにはならず正常です。 IEでもこちらで所有するほとんどのPCからはバグは出ません。 また、tokyo.htmlを直接開いてもバグはでません。 IFRAMEで呼び出すと発生します。 バグが出るものと出ないものの設定やIEバージョンの差も 今のところ見当たりません。 これらはテストページなのでコードもかなり簡素で特別なことはしていないのですが。。 本チャンでは必ずIFRAMEを使用して表示しなくてはならないのでなんとかしたいのですが見当が付く方おりませんでしょうか? ちなみに<OBJECT>タグでの読み込みもテストしてみましたが同様の結果でした。 ■tokyo.html ------------------------------------------------------------------------ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr"> <head> <script src="http://maps.google.co.jp/maps?file=api&hl=ja&v=2&key=xxxxxx" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ function initLoad(){ var lat = '35.65863'; //緯度 var lng = '138.74541'; //経度 if(GBrowserIsCompatible()){ var map = new GMap2(document.getElementById("map")); var point = new GLatLng(lat,lng); map.setCenter(point, 10); map.addControl(new GSmallMapControl()); map.addControl(new GScaleControl()); map.addControl(new GMapTypeControl()); map.setMapType(G_HYBRID_TYPE); var marker = new GMarker(point); map.addOverlay(marker); } } //]]> </script> </head> <body onload="initLoad()" onunload="GUnload()"> <div id="map" style="width:500px; height:500px;"></div> </body> </html> ------------------------------------------------------------------------ ■ parent.html ------------------------------------------------------------------------ <html> <body> <table> <tr><td>test</td></tr> <tr><td> <iframe src="tokyo.html" height="500" width="500" frameborder="0"></iframe> </td></tr> </table> </body> </html> ------------------------------------------------------------------------

みんなの回答

回答No.3

僕も同じように、GoogleMap埋め込みでIE6だけずれて困っていました。 あれこれ試して、原因が判明しました。 それは何と、div id を map 以外にすることだったのです。 信じられない話ですが、これは再現性があります。 例えば、maps でも問題ありませんし、smapでも大丈夫です。 まさか、Microsoftさんが意図的にGoogleMap利用を阻止しようと、IEのソースに・・・等と疑ってしまいました。(という回答をマイクロソフトさんのサイトでしてていいのでしょうか。) 試してみてください。 (ずいぶん時間が経っているから、解決してるでしょうけれども。)

  • fire--
  • ベストアンサー率49% (146/293)
回答No.2

No.1です。 言葉が足りなかったようで、補足しておきます。 地図を表示するコンテナ自体はdivでもtable内でも問題ありません。 またjavascriptをincludeする部分もどこでも良いようです。 問題はGmap2などの実行をするjavascriptの部分で起きました。 なお、私のIE6環境ではiframe内でも、単独でも表示に違いは ありませんでした。

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

直接的な回答ではないので参考情報です。 当方もIEでは結構苦労しました。 こちらは実行スクリプトをbody内に置いていたのですが、 それがtableやdivタグの中にあると動かなかったり、 動いてもクリックした場所より、東のポイントが 拾われたりしました。 また、ここOKwaveの質問2872671でも、実行スクリプトの 部分をtableの外に出して解決しています。この方の例では 実行スクリプトがtableタグの中にあると、ニューヨークの地図が 全く表示されなかったのですが、場所を東京にしてやるとコンテナに たいして指定した地図が左上にずれた形で表示されました。

noname#79935
質問者

お礼

レスありがとうございます。 IEはGoogleMapに限らず苦労してます。。 tableやdiv内に置けなければ、表示位置を指定できませんね。。