我会请求一些帮助,因为我一直在努力解决仅在 IE8 中使用我的代码出现的问题。您可以在http://www.europeontrack.com/test.html上查看说明问题的演示页面。您会注意到,它在 Firefox、Chrome、Safari 上运行良好,但在 IE8 中,它会在 openlayers.js 第 684 行第 178 字符中触发 Javascript 错误“无效参数”。
此页面首先初始化一个 openlayers 地图对象并声明一个空的 cityLayer 矢量图层,我们稍后将使用它来绘制点。链接“显示城市列表”异步调用http://www.europeontrack.com/cityList.html并将其插入 DOM。cityList.html 声明了一个数组,其中存储了几个城市的名称、纬度和经度。然后将该数组作为参数传递给在 test.html 中声明的 showCities() 函数,如下所示:
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”错误。你可以看看我的源代码。我想我已经把它剥离到最低限度了。我被困在这一点上,试图解决这个问题。预先感谢您的帮助。
洛泰尔