Peter Nack: Maps/JQuery- Script erst nach Fertigstellung der Seite einbinden

Beitrag lesen

Tag allerseits,

es geht um die Einbindung von JavaScript-Resourcen in Verbindung mit Google-Maps.

Wie kann ich erreichen, dass die gesamte Seite gerendert wird und meine JavaScript-Funktionen ausgefuehrt werden _bevor_ ich die Google-Maps-API einbinde?
Hintergrund ist der, dass ich die UI mit JavaScript ein wenig umgestalte. Derzeit ist es so, dass die Umgestaltung erst genau dann geschieht, wenn auch Google-Maps geladen ist.

Zur Struktur:

  • Im Head binde ich mein Javascript-File ein
    <script src="/gui/js/my.js" type="text/javascript"></script>

  • Zuvor lade ich JQuery mittels

<script type="text/javascript" src="http://www.google.com/jsapi"></script>  
<script type="text/javascript">

google.load("jquery", "1"); //.3.2");
</script>

  • Mein JavaScript-File besitzt am Anfang $(function()

  • Vor dem Schlieszen des Bodys binde ich dann Maps ein
    <script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=BlaBlub">

Mein Wunsch ist es, dass der letzte Schritt erst _nach_ dem Ausfuehren der anderen Scripte ausgefuehrt wird.

Beim Rumstoebern bin ich auf folgende Funktion gestoszen:

function LoadJavaScript(file_url)  
{  
  var heads=document.getElementsByTagName("head");  
  script_element=document.createElement("script");  
  script_element.type="text/javascript";  
  script_element.src=file_url;  
  heads[0].appendChild(script_element);  
}  

Nutze ich die Funktion um zb ein weiteres Script nachzuladen, so klappt das in der Tat wunderbar (selbst mit setTimeout).
LoadJavaScript("/gui/js/my.js");

Doch wenn ich als Source die Maps-URL angebe (also die maps.google.com[..]), so laed sich meine Seite neu und im Dokument steht lediglich die Script-Angabe
<script src="http://maps.gstatic.com/intl/en_ALL/mapfiles/193c/maps2.api/main.js" type="text/javascript"></script>

Daraus schlussfolgere ich, dass es sehr wahrscheinlich mit der Maps-API zu tun hat. Aber irgendwie komme ich da nicht wirklich weiter.

Kann mir einer hier evtl. Tips geben wie ich das Problem - vielleicht auch auf eine andere Art und Weise - loesen kann?

Besten Dank
Peter