Привет, У меня есть этот код в моем нижнем колонтитуле, он отлично работает во всех браузерах, но IE8, в IE8 он работает только на прямых pageloads, если я вхожу в домен и нажимаю enter , он работает как шарм, но если я удалю обновление, я получаю «Object Expekted», потому что «google.maps» становится пустым объектом, например: JSON.stringify (google.maps) == '[]'Сценарий работает только в первый раз, а не после обновления в IE8
Любой идеал, что может быть неправильным? (Если я удалить кэш и перейти на страницу непосредственно он все еще работает отлично.)
<script type='text/javascript' src='http://www.google.com/jsapi?ver=3.2.1'></script>
<script type="text/javascript">
google.setOnLoadCallback(function(){
jQuery(".all-map").each(function(index) {
var obj = jQuery.parseJSON(jQuery(this).val());
var allMap = new google.maps.Map(document.getElementById(obj.mapId), {
zoom: obj.zoom,
center: new google.maps.LatLng(obj.centerLat, obj.centerLong),
mapTypeId: google.maps.MapTypeId.SATELLITE
}
);
var locations = eval(obj.locations);
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: allMap
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
jQuery('#'+obj.mapId).parent().siblings().eq(i).click();
infowindow.setContent(locations[i][0]);
infowindow.open(allMap, marker);
}
})(marker, i));
}
});
});
</script>
Я бы сказал, что IE8 сломан. Это то же самое со всеми версиями IE или только IE8? Вы пробовали разные настройки совместимости в IE? Каковы настройки кеша для страницы? –
Есть ли document.getElementById (obj.mapId) в потоке страниц до или после этого скрипта? Просто подумайте, что обратный вызов onload может срабатывать, прежде чем объект существует на странице. –
То же самое во всех режимах комп, не знаю о настройках кеша, но это новая установка Проблема шва в том, что «google.maps» имеет значение null после обновления –