Tach!
Mit IE und Firefox funktionierts so:
navigator.geolocation.getCurrentPosition(showArrivalRoute, displayError);
Damit übergibst du eine Referenz zur Funktion showArrivalRoute.
Mit Opera und Chrome klappt das oben nicht, da muss ich das machen damit es geht:
navigator.geolocation.getCurrentPosition(showArrivalRoute(), displayError);
Mit den ()-Klammern rufst du zunächst die Funktion showArrivalRoute() auf und übergibst deren Ergebnis als Parameter für den navigator.geolocation.getCurrentPosition()-Aufruf.
function showArrivalRoute() {
// Hier hab ich aber leider position nicht zur verfügung
position kannst du nicht zur Verfügung haben, weil du es gar nicht entgegennimmst. Der Aufruf von showArrivalRoute findet zuerst statt (und Parameter übergibst du auch keine). Deren Ergebnis wird vermutlich keine Funktionsreferenz (sprich: kein gültiger Parameter für einen erwarteten Callback) sein. Aber erst nach dem Durchlaufen von showArrivalRoute() kann navigator.geolocation.getCurrentPosition() aufgerufen werden. showArrivalRoute() wird also nicht als Ergebnis des Callbacks nach erfolgreicher Positionsermittlung aufgerufen sondern schon viel eher. Das kann so nicht funktionieren.
Was kann ich machen, damit ich position auch in der 2 Variante zur Verfügung hab?
Falls es Unterschiede zwischen den Browsern gibt, sollten sie in der jeweiligen Dokumentation oder auf einer der sich mit dem Thema beschäftigenden Webseiten zu finden sein. Mehr weiß ich auch nicht.
dedlfix.