2016-03-28 3 views
0

Ich habe ein kleines Problem mit meinem JS-Skript. Ich möchte den Ort und die aktuelle Zeitzone des Benutzers auf meiner Seite ermitteln. Ich habe es mit Firefox, MS Internet Explorer und MS Edge getestet. Das Problem ist, es funktioniert manchmal und manchmal funktioniert es nicht. Und ich weiß nicht warum.Geolocation mit JS

In Firefox bekomme ich die Anfrage, wenn ich diese Funktion wirklich erlaube. Aber ich bekomme nicht die Längen- und Breitengrade.

Wenn ich es von mir iPhone versuche funktioniert es die ganze Zeit.

function getLocation() { 
     navigator.geolocation.getCurrentPosition(showPosition); 
     function showPosition(position) {; 
      location_latitude = position.coords.latitude 
      location_latitude = location_latitude.toFixed(6); 
      location_longitude = position.coords.longitude 
      location_longitude = location_longitude.toFixed(6) 
      location_accuracy = position.coords.accuracy 
      location_accuracy = location_accuracy.toFixed(2); 

      var gmt = new Date(); 
      var location_gmt_difference = (gmt.getTimezoneOffset()/60/-1).toFixed(1); 

      options_location_input.location_time_zone.value = location_gmt_difference 
      options_location_input.location_latitude.value = location_latitude 
      options_location_input.location_longitude.value = location_longitude 
      options_location_input.location_accuracy.value = location_accuracy 
     }; 
    }; 

Kann mir jemand helfen. Ich verzweifle!

Antwort

0

Sind Sie immer Serving die Seite? Es funktioniert nicht, wenn nur die Seite im Dateisystem angezeigt wird. Die Seite muss bedient werden.

+0

Hey, ja. Ich serviere es mit XAMPP auf meinem Computer. – Kai

+0

Das Problem, das Sie möglicherweise haben, wenn Sie lokal arbeiten, ist, dass Ihr xampp nicht weiß, in welcher öffentlichen IP-Adresse ausgeführt wird, sodass keine geolocation erhalten werden kann. Wie auch immer, geolocation auf der Client-Seite muss (legal) vom Benutzer erlaubt sein, ansonsten können Sie die Anfrage-IP-Adresse des Clients in Ihrem Server-Side-Code erhalten. – Kruser

+0

Fügen Sie eine Fehlerbehandlungsfunktion als zweiten Parameter zu 'getCurrentPosition' hinzu, um anzuzeigen, warum dies nicht funktioniert. https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition – arkadianriver