Google Maps API v3 BrowserIsCompatible
问题描述:
我正在更新一些使用v2 API for Google Maps的旧代码。在domready中,它会使用像Google Maps API v3 BrowserIsCompatible
if(google.maps.BrowserIsCompatible()){
// load the map
}
声明现在,我加载了谷歌地图API V3,我得到一个错误
google.maps.BrowserIsCompatible不是一个函数
我已经阅读了谷歌v3 api组中的大量主题,但还没有找到明确的答案,说明新函数的调用方式或如何引用它。
答
在V3 as of Google's V2 to V3 migration doc中没有这种方法的等价物。
相反,有效的方式来实现这个测试是:
if (window.JSON) {
// load google maps api async (so google.maps object is available for further use)
}
这是因为所有的browsers that Google Maps API V3 support共享相同的特殊性:他们是第一个版本(通过其供应商),其支持JSON本身。 看到这个screenshot taken from caniuse.com:
例外:
火狐3.0和BlackBerry浏览器6不支持JSON,而是由谷歌地图API的支持。所以规则上述将排除两者,这是这样一个简单的测试可接受的缺点(相比于用户代理嗅探基于代码)
说明:
此测试并不适用于“谷歌.maps'对象,但在脚本加载时。 这可以防止脚本成功加载但“google.maps”对象无法使用的情况(例如IE6)。
谢谢cannonade!看起来很奇怪,他们会放弃这一点,但我相信他们有一个很好的理由。 – julio 2010-08-19 03:01:28
@ julio是的,我不确定。他们从v3中删除了一些不是核心地图功能的东西(如Http请求封装器的东西)。我在Google有一个朋友,下次见她时我会问她:)。 – RedBlueThing 2010-08-19 05:12:45
列表不太正确 - ** google api v3似乎可以在IE 6.0中工作。** – TMS 2011-11-23 12:42:42