0

parseXml定義されている場合でも、この奇妙なエラーが発生します。コードの一部は機能しますが、では機能fine in ChromeしませんFirefox

   $(document).on("pageinit", "#map-page", function () {
       var defaultLatLng = new google.maps.LatLng(56.8517843, 14.828458); // Default somewhere to Växjö when no geolocation support
       if (navigator.geolocation) {
           var stations = [];
           $.ajax({
               type: "GET",
               url: "busstations.xml",
               dataType: "xml",
               success: parseXml
           });

           function parseXml(xml) {
               $(xml).find('station').each(function () {
                   var name = $(this).find("name").text();
                   var localurl = $(this).find("localurl").text();
                   var latitude = $(this).find("latitude").text();
                   var longitude = $(this).find("longitude").text();
                   navigator.geolocation.getCurrentPosition(success, fail, {
                       maximumAge: 500000,
                       enableHighAccuracy: true,
                       timeout: 6000
                   });

                   function success(pos) {
                       currentLatitude = pos.coords.latitude;
                       currentLongitude = pos.coords.longitude;
                       console.log(pos.coords.latitude + " " + pos.coords.longitude);

                   }

                   function fail(error) {
                       alert("No GL support!");
                   }

                   stations.push({
                       "name": name,
                       "localurl": localurl
                   });
                   console.log(JSON.stringify(stations));


               });
           }
       }
   });

ただし、3 行目のif(navigator.geolocation)チェック条件を削除すると、Firefox でも正常に動作し、そのような undefined もありませんReferenceError

また、このif(navigator.geolocation)チェック条件を関数内に持ち込むparseXmlと、コードは正常に動作します。で何が問題を引き起こしているのだろうかFirefox

4

2 に答える 2