Google Maps v3 vs IE ... SCRIPT5022

时间:2012-03-14 13:05:57

标签: internet-explorer google-maps google-maps-api-3

喜欢主题:我的实现在FF,Chrome,Opera ...... IE:SCRIPT5022

我正在使用Callback初始化Google地图,因为我有google.maps.MapTypeID未定义的问题。

<script src="http://maps.google.com/maps/api/js?sensor=false&language=pl&callback=gmapInit" type="text/javascript"><\/script> 

和gmapInit:

  this.map = new google.maps.Map(print_it.doc.getElementById('location-map'), {
     center                     : new google.maps.LatLng(51.917168,19.138184),
     zoom                       : 6,
     minZoom                    : 6,
     maxZoom                    : 16,
     mapTypeId                  : google.maps.MapTypeId.HYBRID,
     scrollwheel                : false,
     disableDefaultUI           : true,
     navigationControl          : true,
     navigationControlOptions   : {
           style: google.maps.NavigationControlStyle.SMALL
     }
  });

print_it.doc是在新窗口中引用文档 并且IE在this.map = new google.maps.Map(.....);

中失败

plz help!

1 个答案:

答案 0 :(得分:2)

这是一个范围问题。

在IE中,无法在文档之间移动节点。

那么当你从揭幕战中初步化地图时会发生什么:

  1. API将访问新窗口内的target-div(没问题 到目前为止)
  2. API将创建大量元素来构建地图(API将在当前文档的范围内执行此操作,而不是在新窗口内,问题开始)
  3. API需要将创建的元素放到地图中,但在IE中这将失败,因为元素已在不同的文档中创建(在开场工具内),必须移动到新窗口。
  4. 你能做什么: 还要在新窗口中包含maps-API,并在新窗口中使用google-object,以便在新窗口中显示与地图相关的所有调用:

    示例

    (假设print_it是一个window-object,你在新窗口中包含了maps-API)

    this.map = new print_it.google.maps.Map(print_it.doc.getElementById('location-map'), {
         center                     : new print_it.google.maps.LatLng(51.917168,19.138184),
         zoom                       : 6,
         minZoom                    : 6,
         maxZoom                    : 16,
         mapTypeId                  : print_it.google.maps.MapTypeId.HYBRID,
         scrollwheel                : false,
         disableDefaultUI           : true,
         navigationControl          : true,
         navigationControlOptions   : {
               style: print_it.google.maps.NavigationControlStyle.SMALL
         }
      });