在javascript中从地理位置获取数据

在javascript中从地理位置获取数据,javascript,function,variables,global,Javascript,Function,Variables,Global,我正在编写一个地理定位脚本,但我无法获取函数的内容 有人能帮我吗 代码如下所示: <script type="text/javascript"> var myvalue1; navigator.geolocation.getCurrentPosition(function() { myvalue1 = 'test'; window.myvalue2 = 'demo'; }); console.log(myvalue1); console.log(window.myv

我正在编写一个地理定位脚本,但我无法获取函数的内容

有人能帮我吗

代码如下所示:

<script type="text/javascript">
var myvalue1;
navigator.geolocation.getCurrentPosition(function()
{
    myvalue1 = 'test';
    window.myvalue2 = 'demo';
});

console.log(myvalue1);
console.log(window.myvalue2);
</script>

var myvalue1;
navigator.geolocation.getCurrentPosition(函数()
{
myvalue1=‘测试’;
window.myvalue2='demo';
});
console.log(myvalue1);
console.log(window.myvalue2);
两者都返回未定义,我不知道如何提取数据

希望有人能帮助我


提前谢谢。

我想没有人打电话给你的getCurrentPosition。将其放置在document ready事件中。

尝试以下操作:

<script type="text/javascript">

var coords;

function outputPosition()
{
    console.log('(' + coords.latitude + ', ' + coords.longitude + ')');
}

navigator.geolocation.getCurrentPosition(function(position)
{
    coords = position.coords;
    outputPosition();
});

/*
    coords will still be undefined here because the callback function
    for getCurrentPosition has not been called yet.
*/

</script>

var-coords;
函数outputPosition()
{
log(“(“+coords.latitude+”,“+coords.longitude+”)”);
}
navigator.geolocation.getCurrentPosition(函数(位置)
{
coords=position.coords;
outputPosition();
});
/*
由于回调函数
尚未调用getCurrentPosition的。
*/

这是异步调用。试试这个

<script type="text/javascript">
var myvalue1;
navigator.geolocation.getCurrentPosition(function()
{
    myvalue1 = 'test';
    window.myvalue2 = 'demo';
    console.log(myvalue1);
    console.log(window.myvalue2);
});


</script>

var myvalue1;
navigator.geolocation.getCurrentPosition(函数()
{
myvalue1=‘测试’;
window.myvalue2='demo';
console.log(myvalue1);
console.log(window.myvalue2);
});

是的,我知道。问题是我真的需要函数之外的信息。我更新了代码<在异步调用回调之前,不会分配code>coords。你可以通过调用另一个函数来访问函数外部的信息。是的,我可以用这种方法来创建函数,这是一个很好的解决方案。谢谢:这是一个异步调用<代码>控制台日志(myvalue1)在
myvalue1='test'
之前调用此行,只有当用户允许共享权限时才会调用该行。因为,
myvalue1
最初是
未定义的
,所以它反映了相同的情况