3

我正在使用以下代码访问黑莓设备的地理位置。它的工作并显示出期望的结果。但我想在这个函数的主体之外访问 window.GlobalVar 。我怎样才能访问它?请帮忙。

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

最好的祝福,

4

2 回答 2

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
}
于 2012-07-23T09:45:01.920 回答
1

window.gps设置后调用window.gps = gps应该足够了,因为它具有全局范围,因为您将其附加到window. 注意 JS 是异步的,即gps调用时可能没有定义。

于 2012-07-23T09:43:49.970 回答