尝试改变你的代码如下:
<script type="text/javascript">
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.write(latitude, longitude);
});
}
</script>
当位置被检索您传递到getCurrentPosition()
功能将得到执行。只有您有权访问该位置,您才能设置latitude
和longitude
变量并将它们写入文档。
在你的代码getCurrentPosition()
将被调用,然后立即之后document.write(latitude,longitude);
将得到执行是前路latitude
和longitude
可用。您必须将document.write()
移动到Location()
。
更新1(基于评论):
如果你不想做document.write()
回调函数里面,但你要调用另一个函数,则必须从回调函数调用它。
它看起来是这样的:
<script type="text/javascript">
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
myFunction(latitude, longitude);
});
}
function myFunction(latitude, longitude) {
// you can do here anything you wish
document.write(latitude, longitude);
}
</script>
更新2(基于评论和更新的问题):
一种方法如何根据位置来处理加载地图是调用initialize()
从Location()
与latitude
和longitude
作为参数。为了确保在加载页面时执行HTML元素的代码可以在Location()
内执行。
window.onload = intialize(latitude, longitude);
一个完整的代码见this。
我知道我不叫它,但它仍然有效!它只是没有输出值 – jony
我推荐阅读一些基本的JavaScript教程,而不是跳入深层,尝试去做一些事情,而不去理解语言的最简单概念。 –