Google Maps JavaScript API错误在Internet Explorer中

问题描述:

我已经为Google Maps JavaScript API v3编写了一个非常简单的jQuery插件。Google Maps JavaScript API错误在Internet Explorer中

它工作在Firefox,Chrome浏览器(等人),但不是Internet Explorer 8

我得到的错误是“对象不支持此属性或方法”在下面的行...

map = new google.maps.Map(mapContainer, myOptions); 

我已经把一个工作示例页面在线展示......我试图让白金汉宫!你可以在jquery.simplemap.js文件中看到后面的代码,它没有被缩小。

http://www.stevefenton.co.uk/cmsfiles/assets/File/simplemap.html

任何帮助将非常感激。

UPDATE

我已经通过这个代码做了详细的调试,它实际上是谷歌的代码,这在很大程度上微细化以及完全无法辨认里面的错误 - 这就是为什么地图加载,如误差后地图被初始化。当我知道它时,我会张贴更多。

UPDATE2

我已经重新排列各种事物的插件,从而导致越来越地图,以显示正确的位置,但由于发生的谷歌地图API在深错误时,地图被初始化,我不能添加标记或标注。

+0

奇怪的是,地图加载无论如何... – Hamish 2011-01-31 23:50:49

+0

@Hamish - 同意,地图加载,但地址不。 – Fenton 2011-02-01 08:43:44

好吧,我已经找到了解决这一问题。

从Google Maps API内部引发的错误是由用于存储地图的变量的范围引起的。所有的API使用像这样的例子中...

map = new google.maps.Map(mapContainer, myOptions); 

注意,“地图”在这些奇妙神秘的范围变量之一,另外,我跑所有这些代码里面我jQuery插件 - 最终的结果是Google Maps API无法获取地图变量的句柄。

通过将map声明为全局变量,Google Maps API可以访问它,并且神奇的一切都开始完美运行。

所以解决方法是申报...

var map; 

在全球范围内,因此API可以得到它。

我认为这只是时间问题。尝试从HTML在进行此调用:

$("#map").simplemap({ search: "Buckingham Palace, London", description: "Buckingham Palace,<br>London" }); 

的准备:

$.ready(function() { 
    $("#map").simplemap({ search: "Buckingham Palace, London", description: "Buckingham Palace,<br>London" }); 
});