Das Firefox-Problem zu beheben ist wirklich einfach. In meinem Fall speichere ich die Geolokalisierung in einer globalen Variablen in Javascript, die als Geolokalisierung bezeichnet wird. Bevor ich diese Variable verwende, überprüfe ich nur, ob sie nicht undefiniert ist. Wenn ja, erhalte ich nur die Geolokalisierung von der IP.
Auf meiner Website habe ich kein Problem damit, den Standort beim ersten Mal zu ermitteln, aber ich habe in meinem kurzen Beispiel gesehen, dass es beim ersten Mal keine Zeit gibt, den Standort zu ermitteln, da dies zu schnell ist.
Auf jeden Fall ist dies nur ein Beispiel, Sie sollten es in jedem Fall anpassen.
var geolocation = {};
getLocation();
$(document).ready(function(){
printLocation();
});
function printLocation(){
if(typeof geolocation.lat === "undefined" || typeof geolocation.long === "undefined"){
console.log("We cannot get the geolocation (too fast? user/browser blocked it?)");
}
else{
console.log("LATITUDE => "+geolocation.lat);
console.log("LONGITUDE => "+geolocation.long);
}
}
function getLocation() {
if(window.location.protocol == "https:" && navigator.geolocation)
navigator.geolocation.getCurrentPosition(function(position){
geolocation["lat"] = position.coords.latitude;
geolocation["long"] = position.coords.longitude;
printLocation();
});
else{
}
}
PS: Ich habe nicht genug Ruf, um die obigen Antworten zu kommentieren, also musste ich eine neue Antwort erstellen. Das tut mir leid.