Sto cercando di ottenere che Firefox 13 trasformi un oggetto posizione geolocalizzazione in una stringa JSON, ma restituisce una stringa vuota anziché la corretta rappresentazione stringa del mio oggetto JSON. Funziona perfettamente nelle ultime versioni di Chrome e Safari, oltre che nel browser Android. Ecco il mio codice:FF 13, IE 9: JSON stringify/geolocation object
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
//Success handler
console.log(position); //This outputs the position object to the console
var gps = JSON.stringify(position);
console.log(gps); //This outputs an empty string!
},
function (error)
{
//Handle error
},
{ maximumAge: 3000, timeout: 60000, enableHighAccuracy: true }
);
}
else {
//Handle error
}
In Chrome, questo emette un oggetto geolocalizzazione, e questa stringa:
"{"coords":{"latitude":XYZ,"heading":null,"accuracy":40,"altitudeAccuracy":null,"altitude":null,"longitude":XYZ,"speed":null},"timestamp":1339712284200}"
Tuttavia, in Firefox 13 l'uscita è solo una stringa vuota, anche se l'oggetto geolocalizzazione che è stampato sulla console è a tutti gli effetti uguale all'oggetto visualizzato da Chrome. Qualche idea su cosa sta andando storto qui? This sembra essere un problema correlato, ma non vedo nemmeno una soluzione. A proposito, IE9 mostra lo stesso comportamento.
geolocalizzazione non ha nulla a che fare con DOM. – user123444555621
Grazie! Ho scoperto che una soluzione alternativa è semplicemente quella di assegnare le proprietà a una nuova variabile e di imporporle, ma non mi è chiaro perché abbia funzionato mentre il mio codice precedente non funzionava, cosa che non mi piaceva. Ora capisco. – Daan
@ Pumbaa80 Più precisamente, la specifica WebIDL definisce il comportamento qui. Ma sentitevi liberi di fare il pelo come desiderato! –