Wenn ein Benutzer meine Website besucht, überprüfe ich, ob ich eine Standort-Sitzung in PHP festgelegt habe. Wenn keine Sitzung mit dem Standort des Benutzers eingerichtet wurde, leite ich sie auf www.domain.net/location um. Auf dieser Seite gibt es eine Reihe von Optionen, mit denen der Benutzer einen Standort auswählen kann. Wenn der Browser es zulässt, ist eine der Optionen, den Browser zu verwenden, um dies zu setzen. Der folgende Code funktioniert wirklich gut.Wie geolocation ablaufen oder zurücksetzen
Das Problem, das ich habe, ist, dass, sobald ein Benutzer den Browser erlaubt hat, den Standort zu teilen, der für immer eingestellt scheint. Während der Benutzer den Standort wechselt, können sie ihren Standort ändern, sodass sie dann auf eine Schaltfläche klicken, um erneut zur Seite www.domain.net/location zu gelangen. Ohne dass etwas auftaucht, nimmt es automatisch den Standort des Browsers auf und leitet sie um. Es gibt andere Standortoptionen auf der Seite, einschließlich einer anklickbaren Karte, ich muss wirklich in der Lage sein, zurücksetzen, ablaufen, löschen, etwas erzwingen, so dass der Browser erneut fragt, ob der Benutzer den Browser verwenden möchte, um den Standort festzulegen oder zuzulassen Benutzer, um eine der anderen Optionen zu verwenden.
Das einzige, was ich mir vorstellen kann, ist, das eigentliche Javascript unten auf eine andere Seite zu verschieben und auf der www.domain.net/location Seite eine andere Schaltfläche zu haben, die etwas wie 'Benutze meinen genauen Standort' sagt und das dann verlinken würde zum JS unten.
Kennt jemand eine andere Möglichkeit, dies oder etwas zurückzusetzen?
<script type="text/javascript" charset="utf-8">
function findLocation()
{
var options = {timeout: 60000};
navigator.geolocation.getCurrentPosition(foundLocation, noLocation, options);
}
function foundLocation(position)
{
var lat = position.coords.latitude;
var lng = position.coords.longitude;
//alert('Found location: ' + lat + ', ' + lng);
window.location = "http://www.domain.net/?lat=" + lat + "&lng=" + lng;
}
function noLocation()
{
alert('Could not find location');
window.location = "http://www.domain.net/location";
}
findLocation();
</script>
Dies sollte eher ein Kommentar als eine Antwort sein (und vielleicht ein Kommentar zu meiner Antwort, dass dies mehr oder weniger das ist, was ich beschrieben habe). –