2012-03-29 13 views
6

मैं ऊपर कोड अक्षां चर में position.coords.latitude संग्रहीत नहीं कर सकता navigator.geolocation.getCurrentPositionnavigator.geolocation.getCurrentPosition के बाहर चर को सहेजना? (जावास्क्रिप्ट)

var lat; 
function callback (position) { 
    lat = position.coords.latitude; 
} 
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000}); 
// after getCurrentPosition succeeds 
alert(lat); // this alerts null 

से बाहर एक चर खींचने के लिए जे एस के दायरे साथ खेलने के लिए कोशिश कर रहा हूँ की वजह से क्षेत्र। क्या इसे करने का कोई तरीका है?

उत्तर

2

आपको async \ ajax प्रकृति को याद रखना होगा।

var lat; 
alert(lat); // this alerts null 
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000}); 
function callback (position) { 
    lat = position.coords.latitude; 
} 

यही कारण है कि आप अशक्त मिलती है:

इस

अपने कोड के निष्पादन आदेश है। async!, async! :)

+0

मैं देख रहा हूँ, इसलिए स्थिति .coords.latitude वास्तव में lat में संग्रहीत है? यदि ऐसा है, तो मैं डेटा को लैट में दूसरे चर में कैसे स्थानांतरित कर सकता हूं? – Derek

+0

@ डेरेक। आप 'lat' पैरामीटर के साथ 'कॉलबैक' से अन्य फ़ंक्शन को कॉल करते हैं। – gdoron

0

आप दस्तावेज़ स्थिति पर छिपे हुए क्षेत्र इनपुट करने के लिए अपनी स्थिति चर बचा सकते हैं। उसके बाद, आप jQuery का उपयोग कर सकते जियोलोकेशन मूल्य

Javscript वापस पाने के लिए:

<script> 
var lat; 
alert(lat); // this alerts null 
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000}); 
function callback (position) { 
    jQuery('#pos_lat').val(position.coords.latitude); 
} 
</script> 

HTML:

<input hidden id='pos_lat' value='' /> 
    //value = position latitude on load 

वापस पाने के लिए मूल्य:

jQuery('#pos_lat').val(); 
+0

'localStorage.setItem (" pos_lat ", position.coords.latitude) सेट करने के लिए;' localStorage.getItem ("pos_lat") प्राप्त करने के लिए '' – San

संबंधित मुद्दे