«Google не определен» при удаленном использовании Google Maps V3 в Firefox - PullRequest
52 голосов
/ 12 июля 2011

Вот моя загадка: у меня есть страница, которая использует Google Maps V3 и jQuery.Все это хорошо работало локально в FF5, Chrome и Safari.

После загрузки на веб-сайт в первой строке появляется ошибка «Google не определен», когда я пытаюсь использовать объект Google

var defaultLocation = new google.maps.LatLng(lat, lng);

Это только происходит в FF , а происходит только удаленно (то есть, если я загружаю файл в FF локально, он работает хорошо).Похоже, что Chrome и Safari работают отлично, как и мои браузеры на Android и iPod.

Вот что я попробовал:

  1. Перемещено <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> на вершину <head> section.
  2. Перемещено все содержимое $(function() {...}); в функцию с именем initialize() и добавлено <body onload="initialize()">
  3. Воспроизведено со сценариями и порядком файлов css
  4. Вставлен URLhttp://maps.google.com/maps/api/js?sensor=false в поле адреса FF и проверил, что я получаю законный скрипт

Но так как это происходит только в FF на удаленной машине и работает хорошо, в противном случае, я не думаю,это имеет какое-либо отношение к моему коду.Возможно порядок загрузки в FF5 прикручен.Может быть, это приоритезирует сетевые ресурсы не так, как другие браузеры.Я действительно не знаю, что с этим делать.

Любая помощь приветствуется.
Парень

Обновление:
Просто хотел добавитьследующий факт: попробовав предыдущее на Mac, я попробовал FF5 в Windows, и повторил то же самое поведение.
Для хорошей цели я также попробовал Pale Moon - те же результаты.Chrome 14, Opera 11.50 и даже чертов IE9 (который не был включен в план тестирования) работают.Это просто FF5, теперь и на Mac, и на Windows 7, который не работает на этой странице.

Ответы [ 13 ]

0 голосов
/ 04 августа 2017

Изменено

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=API"> 
      function(){
            myMap()
                }
</script>

и сделал это

<script type="text/javascript">
      function(){
            myMap()
                }
</script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=API"></script>

Сработало:)

0 голосов
/ 24 февраля 2017

Пожалуйста, проверьте порядок звонков, ваши библиотеки, следующий порядок

  1. <script type = "text/javascript" src = "../resources/googleMaps/jquery-ui.js"></script>

  2. <script type = "text/javascript" src = "../resources/googleMaps/jquery-ui.min.js"></script>

  3. <script type = "text/javascript" src="http://maps.googleapis.com/maps/api/

  4. МЕТОД <script type = "text/javascript" src = "googleMaps/mapa.js"></script>

Я был с этой проблемой, я только скорректировал свой заказ.

0 голосов
/ 20 июля 2011

Не знаю точно, но вот мои лучшие предложения.

Вы используете jQuery. Поэтому вместо установки события вы должны использовать $ (function () {...}); сделать вашу инициализацию. Причиной использования этого является то, что он гарантирует, что все скрипты на странице загружены, и вы не ограничены только одной функцией инициализации, такой как вы с тегом тела загрузки.

Кроме того, убедитесь, что ваш код Javascript указан после включения Google. В противном случае ваш код может быть выполнен до создания объектов Google.

Я бы также посоветовал взглянуть на эту страницу о порядке событий.

http://dean.edwards.name/weblog/2005/09/busted/

...