0

次のコードは、最新のブラウザのすべてのバージョンで、インラインdivからカラーボックスポップアップウィンドウにGoogleマップをロードしますが、ie7のような古いブラウザではマップをロードできません。

<head>
<script src="http://maps.googleapis.com/maps/api/js?key=/////////;sensor=false"></script>
<script>
var myCenter=new google.maps.LatLng(xxxxxxxx,yyyyyyy);

function initialize()
{
var mapProp = {
  center:new google.maps.LatLng(xxxxxxxx,yyyyyyy),
    zoom:10,
  mapTypeId: google.maps.MapTypeId.ROADMAP
  };

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);

var marker=new google.maps.Marker({
  position:myCenter,
  });

marker.setMap(map);

var infowindow = new google.maps.InfoWindow({
  content:"hello world
  });

infowindow.open(map,marker);
}
//google.maps.event.addDomListener(window, 'load', initialize);
</script>

<script type="text/javascript">
jQuery(document).ready(function($){
$(".inline").colorbox({
  inline:true,
  href:"#googleMap",
  fixed:true,
  onComplete: function(){
     initialize();

  }
    });
});
</script>

</head>

<body>
<div style="display:none;">
<div id="googleMap" style="width:600px;height:500px;">
</div>
</div>

<a class='inline' href="#googleMap">Google Map</a>
</body>

次のコードブロックで、ie7コンソールがjsエラーに気付く方法と場所を正確に示しています。

var marker=new google.maps.Marker({
  position:myCenter,
  .....*Error:Expected identifier, string or number...});

jQuery(document).ready(function($){
$(".inline").colorbox({
  inline:true,
  href:"#googleMap",
  fixed:true,
  onComplete: function(){
    ........*Error:Object expected...... initialize();

  }
    });
});

なぜそれが起こっているのか、そしてそれをどのように解決するのか、何か考えはありますか?

ありがとう、

4

2 に答える 2

1

私の提案は、インライン プロパティを使用せず (古い IE は、特定の種類のコンテンツを DOM 内で移動するのに苦労しています)、代わりに html プロパティを使用することです。次に、onComplete を使用してスクリプトを初期化します。

$(".inline").colorbox({
  html:$('#googleMap').clone().attr('id', 'popupMap'),
  fixed:true,
  onComplete: initialize
});

#googleMap の代わりに #popupMap を対象とするように initialize() を編集する必要があります。もう 1 つの方法は、iframe に配置することです。

于 2013-02-23T10:06:58.983 に答える
0

オブジェクトリテラルに関しては、IEはうるさいです。コンマを削除してみてください:

var marker=new google.maps.Marker({
    position:myCenter,
             //here  ^

また、ここに二重引用符がありません:

var infowindow = new google.maps.InfoWindow({
    content:"hello world

する必要があります

content:"hello world"
于 2013-02-22T14:24:40.487 に答える