在AJAX应用程序中使用Openlayers绘制点要素时,IE8中的参数错误无效
我会请求一些帮助,因为我一直在努力解决仅在IE8中使用我的代码发生的问题。
您可以在http://www.europeontrack.com/test.html上查看说明问题的演示页面。正如您将注意到的,它可以很好地运行Firefox,Chrome,Safari,但在IE8中,它会在openlayers.js第684行,字符178中触发Javascript错误“无效参数”。
此页面首先初始化一个openlayers地图对象,然后声明一个空的cityLayer矢量图层,稍后我们将使用它来绘制点。
链接“show city list”异步调用http://www.europeontrack.com/cityList.html并将其插入DOM中。
cityList.html声明一个数组,其中存储了几个城市的名称,纬度和经度。
然后将此数组作为参数传递给showChities()函数,该函数在test.html中声明,如下所示:
function showCities(cities,layer) {
var pointFeatures = [] ;
for ( i = 0 ; i < cities.length ; i++) {
pointFeatures[i] = new OpenLayers.Feature.Vector(
newOpenLayers.Geometry.Point(cities[i]['long'],
cities[i]'lat']).transform(
map.displayProjection,map.baseLayer.projection));
pointFeatures[i].attributes = { label: cities[i]['label'] };
}
cityLayer.addFeatures(pointFeatures);
return false ;
}
在IE8中,只绘制'cities'数组中包含的第一个城市,然后浏览器抛出“Invalid Argument”错误。
你可以看看我的源代码。我想我已将其剥离到最低限度。我在这一点上陷入困境,试图解决这个问题。
预先感谢您的帮助。
Lothaire
没有找到相关结果
已邀请:
2 个回复
惭法搽
桔适丛
我在styleMap中指定了2个变量($ {align},$ {xOffset}),在向矢量图层添加要素时,我没有传递任何值。这导致IE中断,而其他浏览器忽略它。我用固定值替换了这些变量,它解决了IE8问题。为我这个愚蠢的错误道歉。感谢您对此进行调查。 Lothaire