1

わかりました、これに対する解決策を高低で検索しました。私が見つけたものはすべてうまく機能していません。これは、Google マップが jquery タブを使用して非表示の div に表示されないのと同様の問題です。ただし、別のタブに移動してChrome、Firefox、Opera、およびSafariに戻るときに、マップのロードが正しくロードされたままになり、ズームが保持されます。

いつものように私の問題はIEです。

私が設定した方法は、最初にdivを非表示にしてから表示し、マップコードを含むiframeにロードすることです。私が言うように、サイズ変更機能なしで左隅にマップをロードする IE 以外のすべてで正常に動作します。これは、IE が JavaScript を処理する方法にかかっていると思います。私はここでたくさんの提案を試みましたが、IE ではすべて失敗するので、以前に誰かがこれに出くわしたことがあるかどうか、また回避策があるかどうか疑問に思います。

以下のコードは、マップを初期化するためのものです。関数の呼び出しは、ページの最後の html タグの後にあります。

このページは、表示される div パネルを変更するために ui.tab が押されると、iframe を介して div タグに読み込まれます。

手がかりやヒントは大歓迎です。

function initialize() {
  var myLatlng = new google.maps.LatLng(50.66416319854267,-1.1316803097724914);

  var myOptions = {
     zoom: 10,
     center: myLatlng,
     mapTypeId: google.maps.MapTypeId.SATELLITE
     }
 var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

  var marker = new google.maps.Marker({
  draggable: false,
  position: myLatlng, 
  map: map,
  icon: '../images/yellow-pin.png',
  title: ""
  });
  google.maps.event.trigger(map, 'resize'); // added from another forum post does not work
}
4

1 に答える 1

0

これは、典型的な隠れた「左上隅」の問題です。

onload 関数を使用して初期化関数を実行しようとしましたか?

問題は、iframe 内の JavaScript コード (トリガー「サイズ変更」) が、ページが表示されたときではなく、ページが読み込まれたときに実行されることです。読み込まれると、div のサイズはゼロになります。div が表示され、サイズが設定された後、マップ上でサイズ変更機能をトリガーする必要があります。

于 2012-10-18T16:02:15.740 に答える