javascript - Internet Explorer 中的 Google Maps JavaScript API 错误

标签 javascript jquery google-maps jquery-plugins google-maps-api-3

我为 Google Maps JavaScript API v3 编写了一个非常简单的 jQuery 插件。

它适用于 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

如有任何帮助,我们将不胜感激。

更新

我已经通过这段代码进行了详细的调试,它实际上在谷歌代码中出错,它被严重缩小并且完全难以辨认 - 这就是 map 加载的原因,因为错误是在 map 初始化之后。当我知道时,我会发布更多内容。

更新 2

我已经重新排序了插件中的各种东西,这导致 map 显示了正确的位置,但是由于初始化 map 时 Google Maps API 深处发生的错误,我无法添加标记或标注。

最佳答案

好的,我已经找到了解决这个问题的方法。

从 Google Maps API 内部引发的错误是由用于存储 map 的变量范围引起的。 API 的所有示例都使用类似这样的内容...

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

请注意,“ map ”是这些奇妙的神秘范围变量之一......我在我的 jQuery 插件中运行所有这些代码 - 所以最终结果是 Google Maps API 无法处理 map 变量。

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

所以解决方法是声明...

var map;

在全局范围内,因此 API 可以访问它。

关于javascript - Internet Explorer 中的 Google Maps JavaScript API 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4857081/

相关文章:

javascript - 元素 ID 作为函数中的变量

javascript - 谷歌地图 map.getBounds() 在调用 map.fitBounds 后立即

php - <form> 标签在用 php 创建时不显示

jquery - Jquery Div单击音频播放器?

javascript - 当用户移动 map 而不是 setCenter 方法时捕获 bounds_changed 事件

jquery - focusout 不工作 jquery

javascript - 未调用地理编码反向回调函数

google-maps - 使用 angular2 谷歌地图添加动态线

javascript - 如何在 JavaScript 中使用扩展运算符更新内部对象数组

javascript - 如果eval()无法评估给定的字符串,则显示 “Syntax Error”