0

緯度と経度のvarを画面に表示したいのですが、関数が最後に実行されていると思います。初期値に固執しています。目的は、ブラウザが返すジオロケーションの正確な値を画面に印刷することです。ありがとう !!!

<!DOCTYPE html>


<head>

<script>
var longitude = "10";
var latitude = "20";
</script>




</head>
<html>
<body  onload="getLocation()">


<script>
var longitude = "30";
function getLocation() {

    if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function(position){
                latitude = position.coords.latitude;
                longitude = position.coords.longitude;
                alert('aaab:' +longitude);
    });
    }else {
                   alert("Geolocation API is not supported in your browser.");
    }
    }

</script>



<script>
alert("ccc");
document.write (longitude);
document.write (latitude);

</script>
</body>
</html>

関数内で機能していることは知っていますが、これらの変数を外部で使用する方法はありますか?どこからでも呼び出すことができる1つのグローバル変数にそれらを格納できるようにしたいだけです。ありがとう

4

3 に答える 3

0

経度と緯度を書き込んだ時点では、ジオロケーションコールバックは呼び出されていない可能性があります。たぶん、jQueryを使用して正しい値を画面に書き込むことができます...

<script>
    var longitude = "30";
    function getLocation() {

        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function(position){
                latitude = position.coords.latitude;
                longitude = position.coords.longitude;
                //alert('aaab:' +longitude);

                // Use jQuery to write your values to the html
                $("#longitude").html(longitude);
                $("#latitude").html(latitude);
            });
        }else {
            alert("Geolocation API is not supported in your browser.");
        }
    }

</script>

<html>
    ...
    <body onload="getLocation()">
        <div id="longitude"></div>
        <div id="latitude"></div>
    </body>
</html>
于 2013-02-13T17:19:19.830 に答える
0

document.writeは、それを更新するコードが実行される前に実行されています。次のように、コールバックでdocument.writeを実行する必要があります。

<!DOCTYPE html>
  <head>
    <script type='text/javascript'>
      var longitude = "10";
      var latitude = "20";

      function getLocation() {
        if (navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(function(position){
            latitude = position.coords.latitude;
            longitude = position.coords.longitude;

            document.write(latitude+" / "+longitude);  
          });
        }else{
          alert("Geolocation API is not supported in your browser.");
        }
      }

    </script>
  </head>
  <body onload="getLocation()">

  </body>
  </html>
于 2013-02-13T17:22:55.603 に答える
0

これを試して:

function getLocation() {

    if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(displayLocation);
    }else {
                   alert("Geolocation API is not supported in your browser.");
    }
}

    function displayLocation(position) {
       latitude = position.coords.latitude;
       longitude = position.coords.longitude;
       alert('aaab:' +longitude);
    }
于 2013-02-13T17:25:25.663 に答える