使用localStorage设置ajax url在Firefox中不起作用

时间:2014-06-23 10:15:12

标签: javascript jquery ajax

我正在使用JavaScript / jQuery为Google-Maps做一点GPX-Parser。 我有一个上传表格,用户可以上传GPX文件 此文件(此文件的URL)存储在LocalStorage中,因为我需要另一个文件中的路径。 (见下文)

<h1>GPX-Upload</h1>
<input type="file" id="gpxinput" />
<button onClick="localStorage.clear()">Clear</button><br /><br />
<div id="success"></div>

<script type="text/javascript">
  var inputElement = document.getElementById("gpxinput");
  inputElement.addEventListener("change", handleFiles, false);

  function handleFiles() {
      var fileList = this.files;

      //create URL to the uploaded file
      var objectURL = window.URL.createObjectURL(fileList[0]);

      //create local variable
      localStorage.setItem("gpxurl", objectURL);
      $( "div#success" ).html('<p>Upload done</p>');
  }
</script>


我用以下代码显示GPX-Track:

  $.ajax({
    type: "GET",
    url: localStorage.getItem('gpxurl'),
    dataType: "xml",
    success: function (xml) {
        var points = [];
        var bounds = new google.maps.LatLngBounds();
        $(xml).find("trkpt").each(function () {
            var lat = $(this).attr("lat");
            var lon = $(this).attr("lon");
            var p = new google.maps.LatLng(lat, lon);
            points.push(p);
            bounds.extend(p);
        });

        var poly = new google.maps.Polyline({
            //Style
            path: points,
            strokeColor: "#ff0000",
            //strokeColor: "#FB9D00", //Orange
            strokeOpacity: .7,
            strokeWeight: 4
        });

        poly.setMap(map);

        // fit bounds to track
        map.fitBounds(bounds);
    }
 });  // GPX - end


这适用于Google Chrome浏览器。轨道按原样显示。 但是,Firefox并没有显示该曲目 如果我使用 url:&#34; path / to / url&#34; 设置网址,那么它在Firefox中运行良好。

我认为 localStorage.getItem(&#39; gpxurl&#39;)存在问题,但无法找到可行的解决方案..

任何想法如何解决这个问题? 谢谢!

0 个答案:

没有答案