2012-10-07 3 views
0

그래서 나는 작동하지 않는 코드가 있습니다. 이것은 페이지의 맨 위에 있습니다. 그냥 다른 선언Javascript가 HTML 5와 제대로 작동하지 않습니다. Geolocation

window.lat = 42.688; 
window.lng = -75.980; 

$(function() { 
    if (Modernizr.geolocation) { 
     alert('ayoson'); 
     navigator.geolocation.getCurrentPosition(function (position) { 
      window.lat = position.coords.latitude; 
      window.lng = position.coords.longitude; 

     }) 
    } 
    // Build map 
    var mapOptions = { 
     center: new google.maps.LatLng(window.lat, window.lng), 
     zoom: 5, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

있습니다 위의 난 그냥 내가 Modernizr.geolocation에 경고를 넣을 때 트리거에도 불구하고, 설정 기본값으로 끝낼. var mapOptions (예 : alert(window.lng);) 위에 경고를 걸면 첫 번째 경고가 더 이상 트리거되지 않습니다.

미리 감사드립니다.

+0

jsfiddle를 기능 코드와 공유 할 수 있습니까? – Geuis

답변

1

navigator.geolocation.getCurrentPosition의 콜백 var mapOptions가 할당 비동기 언젠가 후에 실행된다. navigator.geolocation.getCurrentPosition (가능)은 사용자의 의견을 필요로하므로 콜백은 나중에 만 실행됩니다. 나머지 코드는 계속 실행됩니다. 콜백은 모든 사용자가이를 무시하면 실행이 보장되지 않기 때문에

, 최선의 전략이 성공적으로지도를 위치 navigator.geolocation.getCurrentPosition에서 사용자, 갱신의 지리적 위치에, 다음, 기본 위치와지도를 구축하는 것입니다 콜백.

+0

감사! 그것은 완벽하게 작동했습니다! – Jordan

관련 문제