Estoy tratando de hacer que Firefox 13 convierta un objeto de ubicación de geolocalización en una cadena JSON, pero devuelve una cadena vacía en lugar de la representación de cadena correcta de mi objeto JSON. Esto funciona bien en las últimas versiones de Chrome y Safari, así como en el navegador de Android. Aquí está mi código: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
}
En Chrome, estas salidas de un objeto de geolocalización, y esta cadena:
"{"coords":{"latitude":XYZ,"heading":null,"accuracy":40,"altitudeAccuracy":null,"altitude":null,"longitude":XYZ,"speed":null},"timestamp":1339712284200}"
Sin embargo, en Firefox 13, la salida es simplemente una cadena vacía, a pesar de que el objeto de geolocalización que es impreso en la consola es, a todos los efectos, el mismo que el objeto mostrado por Chrome. ¿Alguna idea sobre qué está mal aquí? This parece ser un problema relacionado, pero tampoco veo una solución allí. IE9 muestra el mismo comportamiento, por cierto.
geolocalización no tiene nada que ver con DOM. – user123444555621
Gracias! Descubrí que una solución alternativa es simplemente asignar las propiedades a una nueva variable y ponerle una cadena, pero no estaba claro para mí por qué funcionó mientras que mi código anterior no, lo que no me gustó. Ahora entiendo. – Daan
@ Pumbaa80 Más precisamente, la especificación WebIDL define el comportamiento aquí. ¡Pero siéntete libre de criticar como desees! –