Вопрос

Я пытаюсь загрузить два сценария с $.getScript Функция получения скрипта Google Map, затем после этого я получу еще один сценарий (goMap), что делает карты апплеты легко сделать.

Однако при загрузке первый сценарий получения Google Map API хорош, тогда второй скрипт возвращает ошибку анализа и показывает это:

TypeError: «неопределенное» не конструктор '

Тем не менее, я не знаю, откуда это ссылается или на какую строку, я думаю, он должен быть попытаться выполнить геокодер в этом файле (первая строка после (function($){:

http://www.pittss.lv/jquery/gomap/js/jquery.gomap-1.3.2.js

Вот мой код:

$.getScript('http://maps.google.com/maps/api/js?sensor=true').done(function()
{
    $.getScript('../js/gomap.js').done(function()
    {
            // this never gets called
            alert('gomap loaded');
    }).fail(function(jqxhr, settings, exception)
    {
        alert(exception); // this gets shown
    });
}).fail(function()
{
    alert('failed to load google maps');
});

Я попытался изменить настройки Ajax на установку async к false, но это совсем не помогло.

Это было полезно?

Решение

Ошибка вызвана тем фактом, что API Google Maps ожидает загрузки в голову, используя <script src="http://maps.google.com/maps/api/js?sensor=true"></script>.

Если вы не можете сделать это по какой -то причине, все еще есть надежда. API Google Maps не работает, потому что он использует document.write Чтобы ввести зависимость на странице. Чтобы заставить код работать, вы можете перезаписать родной document.write метод

Демонстрация: http://jsfiddle.net/zmtmr/

var doc_write = document.write; // Remember original method;
document.write = function(s) {$(s).appendTo('body')};
$.getScript('http://maps.google.com/maps/api/js?sensor=true').done(function() {
    $.getScript('../js/gomap.js').done(function() {
        alert('gomap loaded');
        document.write = doc_write; // Restore method
    }).fail(function(jqxhr, settings, exception) {
        alert(exception); // this gets shown
        document.write = doc_write; // Restore method
    });
}).fail(function() {
    alert('failed to load google maps');
});

Другие советы

@lolwut попробуй

$.getScript('http://maps.google.com/maps/api/js?sensor=true').done(function()
{
    alert(11);
    $.getScript('http://www.pittss.lv/jquery/gomap/js/jquery.gomap-1.3.2.js').done(function()
    {
            // this never gets called
            alert('gomap loaded');
    }).fail(function(jqxhr, settings, exception)
    {
        alert(exception); // this gets shown
    });
}).fail(function()
{
    alert('failed to load google maps');
});

Если это работает, то вы относительный путь ../js/gomap.js неправильно!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top