我的页面正在返回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
有人知道修复或解决方法吗?或者我做错了什么?
非常感谢。
答案 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();