Google Maps API 3.19 版于 2015 年 2 月 17 日成为默认地图“发布”(请参阅https://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog)。使用quirks mode 时,该版本似乎会导致 Internet Explorer 出现问题,正如我从受此问题影响的应用程序生成的以下测试页面所示(因此这可能包含比此处所需的更多代码):
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Google Maps Test Page</title>
</head>
<body style="margin:0; padding:0">
<!-- Adding ?v=3.18 onto the end of this URL will 'fix' the problem -->
<script src='http://maps.googleapis.com/maps/api/js' type='text/javascript'></script>
<script type='text/javascript'>
function initialize() {
top.google.maps.visualRefresh=true;
var mapOptions = {
zoom: 13,
center: new google.maps.LatLng(51.5072, 0.1275),
mapTypeId: google.maps.MapTypeId.ROADMAP,
scaleControl: true,
overviewMapControl: true
};
this._map = new google.maps.Map(document.getElementById('myMap'), mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<div id="myMap" style="width:500px;height:500px;position:relative;"></div>
</body>
</html>
Firefox 和 Chrome 都可以正确显示可用的地图,而 IE 会在谷歌地图代码深处引发错误,内容为“无法获取显示属性”。无效的论点。' 我试过调试代码,但它被混淆了,使它成为一个痛苦的挑战。
强制版本回到上一个“冻结”版本 (3.18) 暂时解决了这个问题,但这只是一个临时解决方案。
除了向谷歌报告这个问题并希望他们解决这个问题之外,任何人都可以提出一个解决方案吗?
补充说明:
在我写这篇文章时,我注意到这里的信息https://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog说这些版本是:
Experimental: 3.20
Release: 3.19
Frozen: 3.18
版本 3.17 将被删除。对 3.17 或任何先前版本的请求现在将在 3.18 版中提供
虽然此页面https://developers.google.com/maps/documentation/javascript/basics#Versioning说(在页面底部):
Version 3.18 Reference (Release)
Version 3.19 Reference (Experimental)
Version 3.17 Reference (Frozen)
Versions 3.0 - 3.16 have been retired.
这相当令人困惑,但我认为 Changelog 链接是最新的信息来源。这种差异让我感到困惑,所以我认为值得分享观察结果。
15 年 2 月 20 日更新:
昨天谷歌确认这是一个错误 - 请参阅https://code.google.com/p/gmaps-api-issues/issues/detail?id=7675 - 并建议“我们正在研究修复”。
感谢您的意见和建议,但到目前为止,我还没有找到一种解决方法,使我的应用程序能够完全工作,因为其他页面组件依赖于怪癖模式,创建了大量工作以使整个事情再次工作. 我希望谷歌的关注能为我解决这个问题。
15 年 2 月 21 日更新:
https://code.google.com/p/gmaps-api-issues/issues/detail?id=7675现在表示“将在下周部署修复程序”。