2016-08-09 19 views
0

ich eine einfache code fragment getestet haben, die die Längen- und Breitengrad-Werte mit dem HTML5 Geolocation-Funktion zurückgibt:Warum HTML5 Geolocation in verschiedenen Web-Browsern inkonsistent errorneous Verhalten haben

var x = document.getElementById("demo"); 
 

 
function getLocation() { 
 
    if (navigator.geolocation) { 
 
     navigator.geolocation.getCurrentPosition(showPosition, showError); 
 
    } else { 
 
     x.innerHTML = "Geolocation is not supported by this browser."; 
 
    } 
 
} 
 

 
function showPosition(position) { 
 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
 
    "<br>Longitude: " + position.coords.longitude; 
 
} 
 

 
function showError(error) { 
 
    switch(error.code) { 
 
     case error.PERMISSION_DENIED: 
 
      x.innerHTML = "User denied the request for Geolocation." 
 
      break; 
 
     case error.POSITION_UNAVAILABLE: 
 
      x.innerHTML = "Location information is unavailable." 
 
      break; 
 
     case error.TIMEOUT: 
 
      x.innerHTML = "The request to get user location timed out." 
 
      break; 
 
     case error.UNKNOWN_ERROR: 
 
      x.innerHTML = "An unknown error occurred." 
 
      break; 
 
    } 
 
}
<p>Click the button to get your coordinates.</p> 
 

 
<button onclick="getLocation()">Try It</button> 
 

 
<p id="demo"></p>

I getestet den Code in Google Chrome direkt aus dem Abschnitt "Ausprobieren" und er gab "error.PERMISSION_DENIED" zurück. Aber es hat funktioniert, als ich es in XAMPP unter dem localhost bereitgestellt habe. Beachten Sie, dass ich Google Chrome so eingerichtet habe, dass Standortdaten basierend auf dieser documentation freigegeben werden.

Aber dieser Code gibt "error.POSITION_UNAVAILABLE" in Firefox zurück, auch wenn er in XAMPP bereitgestellt wird und wenn ich zustimme, meinen Standort in Firefox zu teilen.

Was verursacht dieses inkonsistente Verhalten in Google Chrome (beim direkten Aufruf und beim Einsatz unter localhost) und beim Zugriff über Firefox?

Antwort

Verwandte Themen