2014-04-28 37 views
2

執行這段代碼後,我遇到了意外的重定向到localhost:xxxx/Home/null。是什麼原因?Google Maps API - 意外重定向

這裏是我的HTML:

<div id="userConsentSection"> 
Can we use your geolocation? <br /> 
    <input type="button" id="yes" value="Yes" /> 
    <input type="button" id="no" value="No" /><br /><br /> 
</div> 

<div id="setCustomLocationSection"> 
    Enter your address manually.<br /> 
    <input type="text" id="customLocation" /> 
    <input type="button" id="setCustomLocationButton" value="Show" /><br /><br /> 
</div> 

<div id="map" style="height: 450px; width: 720px" /> 

JS:

var map1 = null; 
var location = null; 

alert("alert4"); 

function initialize() { 
    alert("alert5"); 
    $("#setCustomLocationSection").hide(); 

    var options = 
     { 
      center: new google.maps.LatLng(0, 0), 
      zoom: 2 
     } 

    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(0, 0), 
     map: map, 
     title: "Marker 0,0" 
    }); 

    map1 = new google.maps.Map(document.getElementById("map"), options) 

    marker.setMap(map); 
} 

alert("alert3"); 

$("#yes").click(function() { 
    $("#userConsentSection").hide(); 
    getPosition(); 
    reloadMap(); 
}); 

$("#no").click(function() { 
    $("#userConsentSection").hide(); 
    showSetCustomLocationSection(); 
}); 

function showSetCustomLocationSection() { 
    $("#setCustomLocationSection").show(); 
} 

function getPosition() { 

    var options = { 
     enableHighAccuracy: true, 
     timeout: 20000, 
     maximumAge: 2000 
    } 

    navigator.geolocation.getCurrentPosition(showPosition, errorPosition, options); 
} 

function showPosition(position) { 
    if (position) { 
     location = position.coords; 
    } 
} 

function errorPosition(position) { 
    switch (position.code) 
    { 
     case 1: 
      showSetCustomLocationSection(); 
      break; 
     case 2: 
      showSetCustomLocationSection(); 
      break; 
     case 3: 
      showSetCustomLocationSection(); 
      break; 
     default: 
      break; 
    } 
} 

function reloadMap() 
{ 
    map1 = null; 

    var options = 
     { 
      center: new google.maps.LatLng(location.latitude, location.longitude), 
      zoom: 8 
     } 

    map1 = new google.maps.Map(document.getElementById("map"), options) 
} 

alert("alert2"); 

google.maps.event.addDomListener(window, 'load', initialize); 

我插入警報顯示哪些代碼被執行,並且沒有。看起來,最後一個事件方法出了問題,但我不知道是什麼,沒有注意到任何錯字。任何想法?

+0

您的默認位置爲空。也許你應該設置一個用戶不允許跟蹤他們的地理位置。這是一個開始。 –

+2

位置是javascript中的保留字...設置它可能會導致問題。 – geocodezip

+0

謝謝@geocodezip - 導致這個問題。 – magos

回答

5

位置 javascript中的保留字窗口對象的屬性,因此將瀏覽器重定向到/position.coords;

謝謝@peter的澄清

+1

這不是一個保留字,但它是窗口對象的屬性 – peter

+0

感謝您選擇它。我糾正了我的答案。 – Garbit