Frage

Ich versuche zwei Skripte mit dem zu laden $.getScript Funktion zum Erhalten von Google Map -Skript, danach erhalte ich ein anderes Skript (danach erhalte ich ein anderes Skript (goMap) die MAP -Applets leicht zu machen.

Wenn jedoch geladen wird, ist das erste Skript zum Abholen von Google Map -API gut, dann gibt das zweite Skript einen Parse -Fehler zurück und zeigt dies an:

TypeError: 'undefiniert' ist kein Konstruktor '

Ich weiß jedoch nicht, wohin das aus oder auf welche Zeile wird, ich denke, es muss versuchen, den Geocoder in dieser Datei auszuführen (erste Zeile danach (function($){:

http://www.pitts.lv/jquery/gomap/js/jquery.gomap-1.2.2.js

Hier ist mein 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');
});

Ich habe versucht, die AJAX -Einstellungen auf das Festlegen zu ändern async zu false, aber es half überhaupt nicht.

War es hilfreich?

Lösung

Der Fehler wird durch die Tatsache verursacht, dass die Google Maps -API erwartet, in den Kopf geladen zu werden <script src="http://maps.google.com/maps/api/js?sensor=true"></script>.

Wenn Sie das aus irgendeinem Grund nicht tun können, gibt es immer noch Hoffnung. Die Google Maps -API funktioniert nicht, da sie verwendet wird document.write eine Abhängigkeit in die Seite injizieren. Um den Code zum Laufen zu bringen, können Sie den Eingeborenen überschreiben document.write Methode.

Demo: 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');
});

Andere Tipps

@lolwut versuchen

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

Wenn dies funktioniert, sind Sie relativer Weg ../js/gomap.js ist falsch!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top