用户点击图片(html代码)后,我希望它可以询问地理位置,并且只有href才会被捕获。问题是根本没有调用specialDisplyLocation方法来设置变量。我认为这与我使用回调的方式有关。
latlng,lat和lng是全局变量
这是当前的代码:
function getForSpecial(callback) {
callback (arguments[1]);
}
function getGeo (compid){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(specialDisplayLocation, displayError);
window.location.href = "specials.php?cid="+compid+"&lat="+lat+"&lng="+lng;
}else{
display(2,"Sorry - your browser doesn't support geolocation! " +
"Use your postal code.");
}
}
function specialDisplayLocation() {
latlng = new google.maps.LatLng(
parseFloat(position.coords.latitude),
parseFloat(position.coords.longitude));
lat = position.coords.latitude;
lng = position.coords.longitude;
alert("lat: "+lat);
}
HTML:
<div class="ad_125x125"
onclick="getForSpecial(getGeo,<?php echo $output125[0][0]; ?>)">
<img src="/ed/img/promos/125/<?php echo $output125[0][1]; ?>" />
</div>
答案 0 :(得分:1)
当您将specialDisplayLocation
称为成功回调时。我建议你重定向那个方法。
function specialDisplayLocation() {
latlng = new google.maps.LatLng(
parseFloat(position.coords.latitude),
parseFloat(position.coords.longitude));
lat = position.coords.latitude;
lng = position.coords.longitude;
alert("lat: "+lat);
//Redirect
window.location.href = "specials.php?cid="+compid+"&lat="+lat+"&lng="+lng;
}
试试这个
function getForSpecial(callback) {
callback (arguments[1]);
}
function getGeo (compid){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(){
specialDisplayLocation();
window.location.href = "specials.php?cid="+compid+"&lat="+lat+"&lng="+lng;
}, displayError);
}else{
display(2,"Sorry - your browser doesn't support geolocation! " +
"Use your postal code.");
}
}
function specialDisplayLocation() {
latlng = new google.maps.LatLng(
parseFloat(position.coords.latitude),
parseFloat(position.coords.longitude));
lat = position.coords.latitude;
lng = position.coords.longitude;
alert("lat: "+lat);
}