我有一个小的javascript,如下所示
<script type="text/javascript">
$(document).ready(function () {
var myLat = 0, myLng = 0;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
myLat = position.coords.latitude;
myLng = position.coords.longitude;}
);
}
alert(myLat +';'+myLng);
});
</script>
我测试并允许在IE11,Opera 29上进行位置跟踪。我在开发人员模式下启用了调试,发现IE11和Opera 29的行为不同。
有人可以解释一下吗?
答案 0 :(得分:2)
您需要将警报代码放入getCurrentPosition
电话的回调中:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
myLat = position.coords.latitude;
myLng = position.coords.longitude;
alert(myLat +';'+myLng);
});
}
否则,您在设置值之前就会发出警报。
答案 1 :(得分:1)
可能是这样的...... http://jsfiddle.net/480qLqr9/6/
var myLat = 0, myLng = 0;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
myLat = position.coords.latitude;
myLng = position.coords.longitude;
getPos(myLat,myLng);
},
function (error) {
if (error.code == error.PERMISSION_DENIED)
console.log("Blocked");
});
}
function getPos(lat,lng){
console.log(lat,lng)
//your logic here
}