1

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

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

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

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

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

非常感谢。

4

2 回答 2

2

我想到了。如果其他人有同样的问题,我会发布我的答案。

为了重现该错误,我必须先加载一个带有 Places Autocomplete 输入的页面。然后,我会加载其他内容,替换该字段。当窗口调整大小事件无法找到不存在的输入的尺寸时,就会发生错误。

我通过调用解决了这个问题

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

在加载新内容之前。

我希望这对某人有所帮助。

于 2013-04-08T18:42:01.997 回答
0

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

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

例如,如果您的地图设置使用:

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

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

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

于 2014-02-26T10:02:39.207 回答