JürgenB: Google Maps API dynamisch nachladen

Hallo,

mit folgendem Code lade ich die Google Maps API dynamisch nach:

  
JB.LoadScript = function(url,callback) {  
  var scr = document.createElement('script');  
  scr.type = "text/javascript";  
  scr.async = "async";  
  if(typeof(callback)=="function") {  
    scr.onloadDone = false;  
    scr.onload = function() {  
      if ( ! scr.onloadDone ) {  
        scr.onloadDone = true;  
        JB.Debug_Info(url,"loaded",false);  
        callback();  
      }  
    };  
    scr.onreadystatechange = function() {  
      if ( ( "loaded" === scr.readyState || "complete" === scr.readyState ) && ! scr.onloadDone ) {  
        scr.onloadDone = true;  
        JB.Debug_Info(url,"ready",false);  
        callback();  
      }  
    }  
  }  
  scr.src = url;  
  document.getElementsByTagName('head')[0].appendChild(scr);  
} // LoadScript  
  
JB.gmcb = function() {  
  JB.Scripte.googlemaps = 2;  
  JB.map_prepared[0] = 2;  
  JB.Debug_Info("Start","http://maps.google.com/maps/api/js?sensor=false&callback=JB.gmcb geladen",false);  
}  
JB.LoadScript("http://maps.google.com/maps/api/js?sensor=false&callback=JB.gmcb", function() {});  

Das funktioniert im IE8, FF, Safari und im Chrome. Nur beim Opera (11.62) feuert zwar der onload im Script-Element, aber die Callbackfunktion von Google wird nicht aufgerufen.

Hat jemand von euch eine Idee, woran das liegen könnte?

Gruß, Jürgen

PS Wo hat der Opera eigentlich seine Entwicklertools bzw. die Javascriptkonsole?

  1. PS Wo hat der Opera eigentlich seine Entwicklertools bzw. die Javascriptkonsole?

    CTRL+Shift+I - wie in den anderen Browsern (mit Ausnahme des IE, dort ist es F12) auch.

    1. Hallo suit,

      PS Wo hat der Opera eigentlich seine Entwicklertools bzw. die Javascriptkonsole?

      CTRL+Shift+I

      danke,

      • wie in den anderen Browsern (mit Ausnahme des IE, dort ist es F12) auch.

      leider nicht, FF und Chrome öffnen die Konsole mit CTRL+Shift+J (wie Javascript). Das Opera hier einen anderen Buchstaben nimmt, habe ich nicht erwartet.

      Allerdings bringt mich die Fehlermeldung in der Konsole nicht wirklich weiter, da der Fehler in einer der google-Funktionen auftritt:

      "Cannot convert 'document.body' to object" ... in getScript"

      Offensichtlich werden da weitere Scripte nachgeladen und in den Body eingebunden, den es zu dem Zeitpunkt, zu dem ich die API lade, noch nicht gibt.

      Gruß, Jürgen

        • wie in den anderen Browsern (mit Ausnahme des IE, dort ist es F12) auch.

        leider nicht, FF und Chrome öffnen die Konsole mit CTRL+Shift+J (wie Javascript). Ich bezog mich auf die Entwicklerwerkzeuge in denen die JavaScript-Konsole auch zu finden ist :)