Javascript一直在重新加载页面

Javascript一直在重新加载页面,javascript,Javascript,我有下面的脚本,可以重新加载页面,以便获取纬度和经度变量。我希望它重新加载一次,但是,页面会不断刷新。我似乎不明白为什么。任何见解都会非常有用 请在下面找到我的代码: window.onload = function getLocation () { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.inn

我有下面的脚本,可以重新加载页面,以便获取纬度和经度变量。我希望它重新加载一次,但是,页面会不断刷新。我似乎不明白为什么。任何见解都会非常有用

请在下面找到我的代码:

window.onload = function getLocation () {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition (position) {
    window.location='location.php?  lat='+position.coords.latitude+'&long='+position.coords.longitude;
}

您从不检查是否设置了
lat
long
参数,因此会不断刷新。为了避免这种情况,您可以检查以下服务器端:

<?php
    if(isset($_GET['lat']) && isset($_GET['long'])){
?>
    <h1>I know where you are!</h1>
<?php
    } else {
?>
    <script>
        /* Your JS script */
    </script>
<?php
    }
?>

我知道你在哪里!
/*你的JS脚本*/

如果参数已经存在,听起来您不想重新加载页面。为此,请在showPosition函数中添加if子句:

function showPosition(position) 
{
  if(locationSet()) {
    window.location='location.php?  lat='+position.coords.latitude+'&long='+position.coords.longitude;
  }
}
function locationSet() {
  // TODO write function that parses window.location.search
  // for lat & long params & returns true if both set
}

location.php生成的页面上也有此脚本吗?要echo@jskulski,如果此脚本在该页面上,您将得到一个循环。如果此脚本也在location.php文件中,则可能会依次调用window.onload和showPosition,并不断刷新页面。您甚至不应该重新加载页面一次。。这是一种糟糕的用户体验。。