Я бы попросил некоторую помощь, потому что я боролся с проблемой, возникающей только в IE8 с моим кодом. Вы можете посмотреть демонстрационную страницу, которая иллюстрирует проблему на http://www.europeontrack.com/test.html. Как вы заметили, он отлично работает в Firefox, Chrome, Safari, но в IE8 он вызывает ошибку Javascript «Недопустимый аргумент» в строке openlayers.js 684, символ 178.Неверная ошибка аргумента в IE8 при использовании функций точки вывода с помощью Openlayers в приложении AJAX
Эта страница начинается с инициализации карты openlayers объект и объявить пустой векторный слой cityLayer, который мы будем использовать позже, чтобы нарисовать точки. Ссылка «показать список городов» асинхронно вызывает http://www.europeontrack.com/cityList.html и вставляет ее в DOM. cityList.html объявляет массив, в котором хранятся имена, широты и долготы нескольких городов. Этот массив затем передается в качестве аргумента к showCities() функция, которая объявлена в 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, только первый город, содержащийся в массиве 'городов рисуется, а затем браузер выдает ошибку «Недопустимый аргумент». Вы можете взглянуть на мой исходный код. Кажется, я сбил его до минимума. Я застрял в этой точке, пытаясь устранить эту проблему. Заранее благодарю вас за помощь.
Lothaire
Отличная работа по отображению всего кода загружаемым способом! –