2012-03-14 3 views
2

Как и в теме: везде моя реализация работает в FF, Chrome, Opera ... IE: SCRIPT5022Google Maps v3 против IE ... SCRIPT5022

Я инициализацией Google Maps на обратный вызов сог я имел google.maps .MapTypeID undefined проблема.

<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 = новый google.maps.Map (.....);

справка plz!

ответ

2

Это проблема с охватом.

В IE невозможно перемещать узлы между документами.

Так что произойдет, когда вы инициализировать карту от новичка:

  1. АНЯ будет доступ к целевому-DIV внутри нового окна (не проблемы до сих пор)
  2. АНЯ будет создавать Лот элементов для построения карты (API будет делать это в области текущего документа, а не в новом окне, проблемы начинаются)
  3. API должен помещать созданные элементы на карту, но в IE это будет fail, потому что элементы были созданы в другом документе (внутри открывателя) и должны быть перенесены в новый w indow.

Что вы можете сделать: включают также карты-API внутри нового окна и использовать Google-объект в новом окне для всех вызовов, связанных с картой внутри нового окна:

пример:

(при условии, PRINT_IT это окно-объект, и вы включили карты-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 
    } 
    }); 
+0

оно не помогло мне напрямую, но ты дал мне очень хороший момент! благодаря! – marverix