IE8上Google Maps API的未指定错误

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

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

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

几年前我发现人们在使用jQuery时遇到了同样的问题: http : //bugs.jquery.com/ticket/4996 访问offsetParent时,是否存在IE 6/7“未指定错误”错误的解决方法

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

非常感谢。

我想到了。 我发布我的答案,以防其他人有同样的问题。

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

我通过电话解决了这个问题

 google.maps.event.clearListeners(window, 'resize'); 

在加载新内容之前。

我希望这有助于某人。

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

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

例如,如果使用以下方式设置地图:

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

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

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