Pregunta

I met unexpected redirection to localhost:xxxx/Home/null after executing this piece of code. What is the reason?

Here is my 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);

I've inserted alerts to show which pieces of code are executed and which not. It seems, something wrong with the last event method, but I've got no idea what, didn't notice any typo. Any idea?

¿Fue útil?

Solución

Location is a reserved word in javascript property of the window object and therefore is redirecting the browser to /position.coords;

Thanks @peter for the clarification

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top