javascript中的全局变量获取Geolocation

时间:2012-07-23 09:42:27

标签: javascript html5 geolocation

我使用以下代码访问黑莓设备的地理位置。它的工作和展示欲望的结果。但我想访问此函数体外的window.GlobalVar。我怎么才能访问它?请帮忙。

 navigator.geolocation.getCurrentPosition(function(position) {  
  var gps = (position.coords.latitude+position.coords.longitude);  
  window.GlobalVar = gps;
  alert (window.GlobalVar);
});

致以最诚挚的问候,

2 个答案:

答案 0 :(得分:7)

window.GlobalVar可以在您的功能之外访问。

这里可能出现的问题是你在设置之前试图访问它,看它是否在回调函数中被设置。

getCurrentPosition提示用户提供坐标,但它不是阻塞调用,即它不会简单地暂停所有代码执行并等待用户做出决定。

这意味着您在页面加载期间设置window.GlobalVar,在页面加载期间请求,并在用户每次设置决定。因此,无论您拨打getCurrentPosition的哪个位置,都无法确定在某一点上,window.GlobalVar会被设置。

如果您想确保在正在运行的脚本中设置window.GlobalVar,则需要确保在变量设置后运行脚本

navigator.geolocation.getCurrentPosition(function(position) {  
  var gps = (position.coords.latitude+position.coords.longitude);  
  window.GlobalVar = gps;

  continueSomeProcess();
});

function continueSomeProcess() {
   // this code will be able to access window.GlobalVar
}

答案 1 :(得分:1)

设置window.gps后调用window.gps = gps应该足够,因为它已将全局范围附加到window。注意JS是异步的这一事实,即在调用它时可能不会定义gps