Wie kann Geolocation ablaufen oder zurückgesetzt werden?

8

Wenn ein Benutzer meine Website besucht, überprüfe ich, ob ich eine Lokalisierungssitzung in PHP eingerichtet 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.

Das Problem, das ich habe, ist, dass, sobald ein Benutzer dem Browser erlaubt hat, den Ort zu teilen, der für immer gesetzt zu sein 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 mir einfällt, 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 so etwas wie "Benutze meinen genauen Standort" sagt und die dann verlinkt würde das JS unten.

Kennt jemand eine andere Möglichkeit, dies oder etwas zurückzusetzen?

%Vor%     
James Mills 19.02.2013, 11:35
quelle

4 Antworten

2

Dies ist eine Einstellung pro Browser, nicht etwas, das Sie auf der Skriptseite steuern können. Möglicherweise können Sie einen Link wie diesen hier bereitstellen erklärt, wie Geolocation-Einstellungen für bestimmte Websites für den jeweiligen Browser aktualisiert werden.

Es scheint, als könnten Sie Ihr spezifisches Problem umgehen, indem Sie nicht auf /location verlinken, sondern auf /location?update oder etwas ähnliches. Gehen Sie im Wesentlichen zur Standortseite, aber fügen Sie etwas hinzu, das die automatische Weiterleitung verhindert, sodass der Benutzer eine andere Entscheidung über seinen Standort treffen kann.

    
Explosion Pills 19.02.2013 11:47
quelle
1

Ich habe zugegebenermaßen nur ein paar Mal mit der JavaScript Location API gespielt, aber nach meinem Verständnis speichert der Browser die Benutzerpräferenz (diese Annahme scheint verstärkt zu sein hier ).

Die zitierte Seite schlägt vor, dass die Präferenz des Benutzers auf einer Website- (Domänen-) Basis anstatt auf einer URL gespeichert wird. Wenn dies nicht der Fall ist, sollte das Hinzufügen eines zufälligen Zeichenfolgenwerts zur URL den Zweck erfüllen. EDIT: Ich habe überprüft und die Ausnahmen sind pro Domain definiert:

Das würde Ihren Vorschlag machen, den Code auf eine andere Seite zu verschieben - oder ihn an ein Ereignis zu binden, das nicht auf Seite läuft, laden Sie die beste Lösung, die ich mir selbst vorstellen kann.

    
Hugo Firth 19.02.2013 11:42
quelle
1

Wenn der Benutzer Ihrer Site die Erlaubnis gibt, seinen Standort zu verwenden, speichert er einfach "allow" zusammen mit Ihrer Site-URL in den Sicherheitseinstellungen des Browsers. Es speichert nicht den tatsächlichen Standort. Das geschieht über Code. Wenn du einen neuen Ort benutzen willst, hol es einfach mit Javascript.

%Vor%

Hier finden Sie weitere Informationen zum Thema Geolocation: Ссылка

Wenn Sie den Standort in einem Cookie speichern und diesen Speicherort erneut verwenden, löschen Sie einfach Ihren Cookie und setzen Sie ihn zurück oder verwenden Sie überhaupt keine Cookies.

Um die Speicherung der Geolokalisierungseinstellungen in Chrome anzuzeigen, öffnen Sie die Chrome-Optionen "Dreifachleiste" & gt; Einstellungen & gt; fortgeschritten ... & gt; Klicken Sie unter Datenschutz auf Inhaltseinstellungen & gt; Klicken Sie unter Standort auf Ausnahmen verwalten.

    
Jim Clouse 18.04.2014 16:11
quelle
0

Ich habe beschlossen, "change-location" an das Ende der URL anzuhängen und verwende PHP, um dies zu überprüfen und das Javascript auf der Seite auszublenden. Dies ist keine großartige Lösung, aber es sieht so aus, als wäre dies eine Einstellung pro Browser und nicht etwas, das Sie mithilfe eines Skripts zurücksetzen können. Es scheint, dass, sobald der Benutzer "merke meine Präferenz" gesagt hat, das ist, was es tun wird, bis sie in Einstellung setzen und das in ihrem Browser ändern.

    
James Mills 19.02.2013 12:26
quelle