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();