我有以下代码:
<script type = "text/javascript">
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(geofields);
}
}
function geofields() {
if (document.getElementById('starthere').checked == 1) {
document.getElementById('start').value = position.coords.latitude + " " + position.coords.longitude;
} else {
document.getElementById('start').value = '';
}
}
</script>
我希望function geofields(){
显示GeoLocation,将'start'元素的值更改为坐标(从GetLocation()脚本接收),但它不能使用上面的代码。有什么建议吗?
答案 0 :(得分:1)
您需要向position
添加geofields
参数并调用getLocation
(或将其设置为处理程序)。
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(geofields);
}
}
function geofields(position) {
if (document.getElementById('starthere').checked == 1) {
document.getElementById('start').value = position.coords.latitude + " " + position.coords.longitude;
} else {
document.getElementById('start').value = '';
}
}
document.addEventListener('load', getLocation);
答案 1 :(得分:0)
尝试将函数调用放在body元素的onload属性中。
<body onload="getLocation();">
这应该确保在执行函数时加载了dom。
问候。
答案 2 :(得分:0)
来自MDN docs:
navigator.geolocation.getCurrentPosition(function(position) {
do_something(position.coords.latitude, position.coords.longitude);
});
我觉得你没有将position
param传递给你的geofields
函数。