JS 地理定位和存储
Posted
技术标签:
【中文标题】JS 地理定位和存储【英文标题】:JS Geolocation and Storage 【发布时间】:2014-11-13 18:34:10 【问题描述】:这是我的代码 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 标记也不会更新
【问题讨论】:
【参考方案1】: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);
);
);
Example
【讨论】:
以上是关于JS 地理定位和存储的主要内容,如果未能解决你的问题,请参考以下文章
JS新API标准 地理定位(navigator.geolocation)