google map中添加polygons 时IE偶尔会报脚本错误,而在firefox中是没有问题

注:后续最终解决方案,虽然没有彻底解决bug,但是在IE里bug出现的概率小了很多 ,同时也在这里感谢黑暗浪子,虽然没有提供解决方案,但是让我感动无比哈,还是咱们Javaeye上的兄弟姐妹们好,不象我在google map help 论坛中发帖(英文不怎么的,见笑了)http://www.google.com/support/forum/p/maps/thread?tid=401ad85396054251&hl=en
倒是有个老外回复了我,不过他老是在提醒我这个不是那个论坛的帮助范围,  搞得我莫名其妙,难道是我发错了版块还是咋的

 

好了,下面是我在JE的问答频道的提问,摘录下来:


用google map 地图添加多边形区域时,用IE浏览器有时会出现“未指明的错误”和“对象不支持此属性或方法”,错误代码指向的是google map的main.js,在firefox下是从来不会出现这个问题的。有的时候又是没问题的,并且在新打开的网页,第一次访问的时候出现的机率大,而按“Ctrl+F5”后运行正常,区域也都画出来了。
  还有一个特点是,我在本机访问,一直都没有问题的,不论是IE6,IE7还是IE8,而在外网访问却会老出现这样的bug。
js报错信息如下:
Message: Unspecified error.
Line: 1173
Char: 69
Code: 0
URI: http://maps.gstatic.com/intl/en_ALL/mapfiles/193c/maps2.api/main.js

Message: Object doesn't support this property or method
Line: 4
Char: 1
Code: 0
URI: http://maps.gstatic.com/cat_js/intl/en_ALL/mapfiles/193c/maps2.api/%7Bmod_drag,mod_ctrapi,mod_poly%7D.js

请遇到过类似问题的JE们指点一二,非常感谢!

正常的运行下的地图如下:

google map中添加polygons 时IE偶尔会报脚本错误,而在firefox中是没有问题_第1张图片

 

而出现bug的地图则是:

google map中添加polygons 时IE偶尔会报脚本错误,而在firefox中是没有问题_第2张图片

 

一次访问出现js错误,刷新后没有问题,会不会是因为第一次时google map api没有加载完,刷新时此时浏览器中有缓存,此时加载完了从而没有问题呢?请各位指点一二,小女子在此谢过!

 

以下是解决过程中的测试过程:

由于画图的数据源是一个xml文件,用ajax方式请求,于是就猜想是不是因为用这种方式响应慢造成的,于是改为在jsp中自己构造了两个经纬度数组,完成了画地图区域的功能,然后将这个jsp放到外网,还是偶尔会出现同样的错误。并且,我将之前写的一个demo放到外网环境,这个demo也是用ajax请求xml,读取数据源,用IE,Firefox都没有出现这个问题。http://www.vivingmadrid.es/neighborhood.html 这是demo中的地图url。因此,否决了读取数据源的ajax请示过慢造成此bug。

再仔细观察出现错误的当时情形是用IE访问时,页面加载样式中的图片比较慢时,然后就出现这个js错误,所以我猜测是因为网速比较慢的时候,加载过慢造成引用google map api没有加载完。
如果是这个原因的话,加一个延时可以么?但是延时的时间不可预知,不过我还是先加一个延时测试一下。
然后我就在代码中加了一个延时方法,延时200ms,然后再调画图方法,放到外网测试,IE中还是会出现这个问题,不过IE6中出现的概率小多了,而在这之前我用IE7,IE8测试,10次只有一两次出现,而同事用IE6测试,新打开一个窗口,几乎在第一次访问时都出现这个js错误,虽然没有彻底解决这个问题,但是出现的概率小了许多。因为快要release,这个问题已经折腾了两三天了,老大就说如果实在解决不了,就尽量降低出现频率吧,所以这个bug终于被我T回去了,心情也变轻松啦,高兴一下,哈

 

你可能感兴趣的:(Ajax,IE,Google,脚本,firefox)