我有以下脚本重新加载页面,以便我可以获取纬度和经度变量。我想重新加载一次,然而,页面会一遍又一遍地重新刷新。我似乎无法弄清楚原因。任何见解都会非常有帮助。
请在下面找到我的代码:
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;
}
答案 0 :(得分:2)
您永远不会检查是否设置了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
}
?>
答案 1 :(得分:0)
如果params已经存在,听起来你不想重新加载页面。为此,请在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
}