这是我的代码 http://jsfiddle.net/#&togetherjs=mjFbd89fzF
$(document).ready(function () {
if (navigator.geolocation) {
}
if (typeof (localStorage) != "undefined") {
navigator.geolocation.getCurrentPosition(function (position) {
localStorage.setItem('latitude', position.coords.latitude);
localStorage.setItem('longitude', position.coords.longitude);
});
$('#location').innerHTML = localStorage.getItem('latitude') + ' ' + localStorage.getItem('longitude');
}
});
这是 HTML
<BODY>
<h1>you're here</h1>
<h2 id="location"></h2>
</BODY>
系统提示我共享我的位置,但即使位置存储在本地存储中,h2 标签也不会更新
最佳答案
getCurrentPosition
是异步函数,将在 $('#location')
之后执行。您可以将其存储在本地存储中,但该数据将在第二页后可用加载时,您可以在 getCurrentPosition
中设置 $('#location')
或使用 Deferred
。
#1
$(document).ready(function () {
if (navigator.geolocation) {}
navigator.geolocation.getCurrentPosition(function (position) {
$('#location').html(position.coords.latitude + ' ' + position.coords.longitude);
});
});
#2
$(document).ready(function () {
var d = $.Deferred();
if (navigator.geolocation) {}
navigator.geolocation.getCurrentPosition(function (position) {
d.resolve(position.coords.latitude, position.coords.longitude);
});
d.done(function(latitude, longitude) {
$('#location').html(latitude + ' ' + longitude);
});
});
关于javascript - JS 地理定位和存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26916001/