Staram się, aby Firefox 13 zmienił obiekt położenia geolokalizacji na ciąg JSON, ale zwraca ciąg pusty, a nie poprawną reprezentację ciągów mojego obiektu JSON. Działa to dobrze w najnowszych wersjach Chrome i Safari, a także w przeglądarce Androida. Oto mój kod:FF 13, IE 9: JSON stringify/obiekt geolokalizacji
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
}
W Chrome to wysyła przedmiot geolokalizacji, a ten ciąg:
"{"coords":{"latitude":XYZ,"heading":null,"accuracy":40,"altitudeAccuracy":null,"altitude":null,"longitude":XYZ,"speed":null},"timestamp":1339712284200}"
Jednak w Firefoksie 13 wyjście jest tylko pusty ciąg znaków, mimo że obiekt geolokalizacja to drukowane na konsoli jest do wszystkich celów tak samo jak obiekt wyświetlany przez Chrome. Jakieś pomysły na to, co się tutaj dzieje? This wydaje się być pokrewnym problemem, ale nie widzę tam również rozwiązania. I tak, IE9 wyświetla to samo zachowanie.
Geolokalizacja nie ma nic wspólnego z DOM. – user123444555621
Dzięki! Zorientowałem się, że obejście tego problemu polega po prostu na przypisaniu właściwości do nowej zmiennej i objaśnieniu tego, ale nie było dla mnie jasne, dlaczego to działało, podczas gdy mój wcześniejszy kod nie działał, co mi się nie podobało. Teraz rozumiem. – Daan
@ Pumbaa80 Dokładniej, specyfikacja WebIDL określa zachowanie tutaj. Ale nie krępuj się! –