Вы, должно быть, не знаете об асинхронной природе javascript, иначе это очень простая проблема.В любом случае, здесь я объясняю
Когда страница загружается и находит window.onload=PageLoad();
, она вызывает функцию PageLoad()
, а затем
function PageLoad() {
getLocation(); // <-- gets called
document.frm1.submit(); // <-- doesn't wait for getLocation() to complete;
// rather runs right away
}
Как вы можете догадаться, пока getLocation()
делает свою работу(в сортировке «нить» A) document.frm1.submit();
запускается (в другой сортировке «нить» B) и отправляет форму, которая не соответствует вашим ожиданиям.
Так что вместо этого вам нужно переместитьотправьте соответствующий код в showPosition()
, чтобы браузер узнал местоположение и отправил форму.
function showPosition(position) {
document.getElementById("getlat").value = position.coords.latitude;
document.getElementById("getlon").value = position.coords.longitude;
lon=document.getElementById("getlon").value;
lat=document.getElementById("getlat").value;
document.frm1.submit(); <-- submits when browser gets the users location
}