我为 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
任何帮助将非常感激。
UPDATE
我已经通过这段代码进行了详细的调试,它实际上在 Google 代码中出错,该代码被严重缩小并且完全难以辨认 - 这就是地图加载的原因,因为错误是在地图初始化之后发生的。当我知道时,我会发布更多内容。
UPDATE2
我已经重新排序了插件中的各种内容,这导致地图显示正确的位置,但由于初始化地图时 Google 地图 API 深处发生的错误,我无法添加标记或标注。
好的,我已经找到了解决这个问题的方法。
Google Maps API 内部引发的错误是由用于存储地图的变量的范围引起的。 API 的所有示例都使用类似的内容......
map = new google.maps.Map(mapContainer, myOptions);
请注意,“map”是这些奇妙的神秘范围变量之一...并且我在 jQuery 插件内运行所有这些代码 - 所以最终结果是 Google Maps API 无法获取地图变量的句柄。
通过将地图声明为全局变量,Google Maps API 可以访问它,一切都神奇地开始完美运行。
所以解决方法是声明...
var map;
在全局范围内,因此 API 可以访问它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)