IE8上Google Maps API的未指定错误

时间:2013-04-05 20:24:58

标签: jquery google-maps-api-3 internet-explorer-8

我的页面正在返回SCRIPT16389:IE8中未指定的错误。我想我找到了它的原因但没有解决方案。

错误来自Google Maps API,函数mq(a,b)。问题是IE8似乎无法在异步加载的内容上处理getBoundingClientRect(),而且我正在使用jQuery.load()加载内容。如果我创建的页面具有与页面相同的内容加载而不是异步,则不会发生错误。

无论是否显示地图,页面加载时都会发生错误,然后在调整窗口大小时发生错误。

我发现几年前人们对jQuery有同样的问题: http://bugs.jquery.com/ticket/4996 Is there a workaround for IE 6/7 "Unspecified Error" bug when accessing offsetParent

有人知道修复或解决方法吗?或者我做错了什么?

非常感谢。

2 个答案:

答案 0 :(得分:2)

我明白了。我发布了我的答案,以防其他人遇到同样的问题。

要重现错误,我必须首先加载包含“地方自动填充”输入的页面。然后,我会加载其他内容,替换字段。当窗口调整大小事件无法找到不存在的输入的维度时,会发生错误。

我通过调用

解决了这个问题
google.maps.event.clearListeners(window, 'resize');

在加载新内容之前。

我希望这有助于某人。

答案 1 :(得分:0)

其他答案对我不起作用。经过十几个想法,我最终得到了以下工作(!)解决方案:

在加载内容之前,请销毁附加地图的对象。

e.g。如果您的地图使用以下设置:

map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

在执行ajax请求之前使用此代码:

$('#map-canvas').remove();