我使用以下代码访问黑莓设备的地理位置。它的工作和展示欲望的结果。但我想访问此函数体外的window.GlobalVar。我怎么才能访问它?请帮忙。
navigator.geolocation.getCurrentPosition(function(position) {
var gps = (position.coords.latitude+position.coords.longitude);
window.GlobalVar = gps;
alert (window.GlobalVar);
});
致以最诚挚的问候,
答案 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
。