Pregunta

Tengo un pequeño botón en mi página que debería cargar un mapa de Google. Como quiero que mi página se cargue muy rápido y esta característica no es realmente necesaria, no quiero incrustar el script de la API de Google Maps en la carga de la página. Solo quiero cargarlo cuando se haga clic en el botón.

Intenté usar el método jQuery $ .getScript (), sin embargo, si estoy usando el código anterior, obtengo una página en blanco. La página comienza a cargarse y tan pronto como se ejecuta mi archivo JavaScript, la página está en blanco (blanco).

$.getScript("http://maps.google.com/maps/api/js?sensor=false", function(){
    $('#googleMap').live('click', function(e) {

        e.preventDefault();
        loadMap("mapBottomContainer", false);

    });
});

¿Qué estoy haciendo mal aquí?

editar/actualizar:

No parece marcar la diferencia si hago esto:

$('#googleMap').live('click', function(e) {

    $.getScript("http://maps.google.com/maps/api/js?sensor=false", function(){

        e.preventDefault();
        loadMap("mapBottomContainer", false);

    });

});

La página no queda en blanco en la carga de la página, sin embargo, tan pronto como hago clic en el botón mapas, la página se blanquea.

Actualización 2:

la función de mapas de carga:

function loadMap(cont, scroll) {

    var latlng = new google.maps.LatLng(47.244236,11.249194);
    var options = {
        zoom: 14,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        scrollwheel: scroll,
        streetViewControl: false,
        navigationControlOptions: {  
            style: google.maps.NavigationControlStyle.SMALL 
        }
    }

    var map = new google.maps.Map(document.getElementById(cont), options);

    var mapdesc = '<div id="gmContent">'+
    '<h3 id="gmTitle" class="widget-title">Something</h3>'+
    '<div id="gmBody">'+
    '</div>'+
    '</div>';

    var infowindow = new google.maps.InfoWindow({
        content: mapdesc
    });

    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        title: 'My Title'
    });

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map,marker);
    });

    infowindow.open(map,marker);

}

No hay solución correcta

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