私のコードでは 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 は、いくつかの都市の名前、緯度、経度が格納される配列を宣言します。この配列は、次のように 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' 配列に含まれる最初の都市のみが描画され、ブラウザは「無効な引数」エラーをスローします。私のソースコードを見ることができます。最小限に抑えたと思います。この問題をトラブルシューティングしようとして、この時点で立ち往生しています。よろしくお願いいたします。
ロテール