jQuery GoogleMap Firefox

#jquery #jquery-ui #firefox #google-maps

#jquery #jquery-пользовательский интерфейс #firefox #google-карты

Вопрос:

Я пытался использовать карты Google, это работает с Chrome IE, но не с FireFox?

Я что-то упускаю :

 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/jscript">
function initialize() {

    var latitude = document.getElementById("Latitude").value;
    var longitude = document.getElementById("Longitude").value;

    var latlng = new google.maps.LatLng(latitude, longitude);
    var options = { zoom: 16, center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById
        ("map_canvas"), options);
    var image = '@Url.Content("~/Images/pushpin.png")';
    var marker = new google.maps.Marker({
        position: latlng,
        title: "Position",
        icon: image

    });
    marker.setMap(map);
}

$(function () {
    initialize();

});
</script>
<div id="map_canvas" style="width: 800px; height: 400px;margin-top:15px;">
  

Комментарии:

1. Мне это кажется правильным. Какой у вас map_canvas css? Кроме того, генерирует ли он что-либо в FF (частичная карта или выделенное серым пространство карты?)

2. Моя map_canvas представляет собой простой div <идентификатор div=»map_canvas» style=»ширина: 800 пикселей; высота: 400 пикселей; верхнее поле: 15 пикселей;»>

3. хм .. Обычно проблема в том, что высота и ширина не были указаны. Что произойдет, если удалить маркеры? работает ли это в FF?

4. Даже когда я удаляю маркер, это та же проблема. div здесь, но карта отсутствует

5. Если у вас есть firebug, попробуйте вызвать initialize в этой консоли и посмотрите, загрузится ли он тогда. Некоторое время назад у меня была очень похожая проблема. Я создавал карту с несколькими маркерами, и она выдала ошибку. Что исправило это для меня, так это установка всех границ сразу и всех маркеров после создания карты, но я не думаю, что это ваша проблема.

Ответ №1:

Ваш вызов jquery выглядит подозрительно. Я бы попробовал:

 $(document).ready(function() {
 initialize();
});
  

На моем я просто застрял с неприятным старым встроенным onload =»initialize ()». Если вам нужен рабочий пример, вы можете посмотреть, что у меня есть здесь.

Комментарии:

1. Там нет ничего «подозрительного», $(function() { }) и $(document).ready(function() { }) абсолютно идентичны. Также возврат к добавлению onload атрибутов не является улучшением.

2. Загрузка на самом деле не была задумана как предложение, скорее признание. Я не видел этого сокращения для document ready. Аккуратно. Тем не менее, предоставленная ссылка может помочь.