Question

Je suis en train de charger deux scripts avec la fonction $.getScript d'obtenir le script Google Map, puis après qui est chargé, je reçois un autre script ( goMap ) qui rend applets carte facilement à effectuer.

Cependant, lorsqu'il est chargé, le premier script d'obtenir API Google Map est bonne, le second script retourne une erreur d'analyse et montre ceci:

TypeError: 'undefined' est pas un constructeur '

Et pourtant, je ne sais pas où cela fait référence à partir ou quelle ligne, je pense qu'il faut essayer d'exécuter le géocodage sur ce fichier (première ligne après (function($){:

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

Voici mon code:

$.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');
});

J'ai essayé de changer les paramètres AJAX ensemble async à false, mais il n'a pas aidé du tout.

Était-ce utile?

La solution

L'erreur est causée par le fait que qu'attend l'API Google Maps à charger dans la tête, en utilisant <script src="http://maps.google.com/maps/api/js?sensor=true"></script>.

Si vous ne pouvez pas le faire pour une raison quelconque, il y a encore de l'espoir. L'API Google Maps ne fonctionne pas, car il utilise document.write pour injecter une dépendance dans la page. Pour obtenir le code de travail, vous pouvez remplacer la méthode document.write native.

Démo: 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');
});

Autres conseils

@lolwut Essayez

$.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');
});

Si cela fonctionne alors vous chemin relatif ../ js / gomap.js ne va pas!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top