Ho avuto un comportamento strano quando ho provato a testare la mia pagina web "navigator.geolocation.getCurrentPosition" . Ecco il mio risultato della prova e il codice:navigator.geolocation.getCurrentPosition fallisce sempre in chrome e firefox
il mio codice:
function detectLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(geocodePosition, onError, { timeout: 30000 });
navigator.geolocation.watchPosition(watchGeocodePosition);
}
else
{
onError();
}
}
questa funzione è stata eseguita quando "corpo" evento onload è stato chiamato. Avevo provato a cambiare il timeout a 10000 e 20000, ma ho comunque ottenuto lo stesso risultato. Ho anche permesso a crome e firefox di ottenere la mia posizione.
risultato:
- Utilizzando cromo (v 17.0.963.79 m), risultato sempre andato a onError funzione quando navigator.geolocation.getCurrentPosition è stato chiamato.
- Utilizzando Firefox (v 10.0.2), il risultato è sempre andato alla funzione onError quando è stato chiamato navigator.geolocation.getCurrentPosition.
- Utilizzando IE (v 9), il risultato è stato fantastico, ho ottenuto la mia posizione corrente.
qualcuno può aiutarmi in questa strana situazione? Non avevo proprio alcuna idea di risolvere questo problema e avevo fretta per la scadenza del mio progetto. Grazie in anticipo.
EDIT: Per questo paio di giorni ho avuto qualche progresso, il codice di errore è 2 con un messaggio "del fornitore di rete a 'https://maps.googleapis.com/maps/api/browserlocation/ json? browser = chromium & sensor = true ': Response was malformed ". Ancora irrisolto, qualcuno sa come risolvere questo?
sembra insolito per me che la vostra istruzione if non ha alcun vero banco di prova. Mi aspetterei di vedere qualcosa come se (navigator.geolocation! = Null) o alcuni di questi. – Terry
@Terry Sembra che la dichiarazione "se" non sia stata un problema, questo strano risultato è rimasto lì anche se l'ho modificato in quello che hai suggerito. Sai perché solo IE può recuperare una posizione corretta? in realtà ero un indonesiano e la mia posizione attuale era in East Java. –
potresti trovare differenze a seconda che tu sia in LAN o wifi, questo influisce sul tuo risultato? – ajayel