JavaScript Problem

  • Spiel mich grad mit der Google Maps API herum und komm bei folgendem (JavaScript)Problem nicht weiter:

    Ich will eine Markierung für einen bestimmten Ort setzten. Wenn ich dies wie im unten gequoteten Codestück mache funktioniert dies auch problemlos. Allerdings möchte ich in einem weiteren Schritt Markierungen an mehreren Orten einfügen und dazu ist es notwendig, dass ich die Funktion "showAddress()" im Body aufrufe. Nur wie mache ich das?

    Sollte das nicht eigentlich mit

    HTML
    <script type="text/javascript">
    showAddress("OrtXY")
    </script>

    funktionieren? Geht allerdings nicht, da dann sowohl map als auch geocoder null ist.

  • ich glaube das body onload='...' wird erst aufgerufen, _nachdem_ das Dokument fertig geladen wurde. D.h. zu dem Zeitpunkt, an dem das Script im body ausgefuehrt wird, wurde die load() Methode noch gar nicht aufgerufen, und deine objekte noch nicht initialisiert.

    Wenn du load stattdessen z.b. im body als Script aufrufst, sollte es funktionieren:

  • ich glaube das body onload='...' wird erst aufgerufen, _nachdem_ das Dokument fertig geladen wurde. D.h. zu dem Zeitpunkt, an dem das Script im body ausgefuehrt wird, wurde die load() Methode noch gar nicht aufgerufen, und deine objekte noch nicht initialisiert.

    Wenn du load stattdessen z.b. im body als Script aufrufst, sollte es funktionieren:

    Hab ich auch schon probiert, aber wenn ich load() im body aufrufe tut sich gar nichts mehr, es wird nicht einmal die Karte geladen.

  • So funktioniert es schon, nur ich lese aus einer DB eine Menge Orte aus und für diese sollen Markierungen gesetzt werden. Und diese sollten ohne Mithilfe des Users geladen werden.

  • Problem dürft sein, dass das Laden der Map länger dauert als der Aufbau der restlichen Elemente. Habs jetzt gelöst mit einem timeout:

    HTML
    <script type="text/javascript">
    <!--
    setTimeout("showAddress('XY')",500);
    // -->
    </script>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!