就像主题中的那样:我的实现在 FF、Chrome、Opera...IE 中的任何地方都有效:SCRIPT5022
我正在通过回调初始化 Google map ,因为我遇到了 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(..... );
请帮忙!
最佳答案
这是一个范围问题。
在 IE 中,无法在文档之间移动节点。
那么当您从 opener 初始化 map 时会发生什么:
- API 将访问新窗口内的 target-div(没问题 到目前为止)
- API 将创建大量元素来构建 map (API 将在当前文档的范围内执行此操作,而不是在新窗口内,问题就开始了)
- API 需要将创建的元素放入 map ,但在 IE 中这会失败,因为这些元素是在不同的文档(打开器内)中创建的,必须移动到新窗口。
你可以做什么: 还要在新窗口中包含 map API,并在新窗口中使用 google-object 来进行与新窗口中的 map 相关的所有调用:
示例:
(假设 print_it 是一个窗口对象,并且您在新窗口中包含了 map 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
}
});
关于internet-explorer - 谷歌地图 v3 与 IE ... SCRIPT5022,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9702574/