javascript中的全局变量来获取地理位置
Posted
技术标签:
【中文标题】javascript中的全局变量来获取地理位置【英文标题】:global variable in javascript to get Geolocation 【发布时间】:2012-07-23 09:42:27 【问题描述】:我正在使用以下代码访问黑莓设备的地理位置。它的工作并显示出期望的结果。但我想在这个函数的主体之外访问 window.GlobalVar 。我怎样才能访问它?请帮忙。
navigator.geolocation.getCurrentPosition(function(position)
var gps = (position.coords.latitude+position.coords.longitude);
window.GlobalVar = gps;
alert (window.GlobalVar);
);
最好的问候,
【问题讨论】:
请看***.com/questions/7809690/… 【参考方案1】: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
【讨论】:
我将其设置为 onload,并尝试在页面末尾访问它。 @asifhameed:不,您没有将其设置为 onload,您是在 要求 将其设置为 onload。当你得到它是你无法控制的,如果用户选择不分享它,你可能永远也得不到它。在页面的末尾很可能不会设置它,因为页面末尾的脚本将在站点呈现时立即执行,并且在用户有机会对请求做出反应之前。请参阅我的更新答案。【参考方案2】:在设置window.gps = gps
后调用window.gps
就足够了,因为它具有全局范围,因为您将它附加到window
。注意 JS 是异步的,即 gps
在调用时可能没有定义。
【讨论】:
我正在设置全局变量 onload,并尝试在页面末尾访问它。以上是关于javascript中的全局变量来获取地理位置的主要内容,如果未能解决你的问题,请参考以下文章