2012-09-05 35 views
9

Estoy tratando de hacer posible cambiar el contenido que se muestra dentro de un DIV que es el contenido de una ventana de información. Pude cambiar el contenido de Hola a YO dentro de la ventana de información. El problema es que cuando cierro la ventana de información y la vuelvo a abrir, el contenido actualizado vuelve al original. A continuación se muestra el código:change content infowindow maps v3

google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) { 
     if (event.type == google.maps.drawing.OverlayType.MARKER) { 
      //event.overlay.setTitle("Hello"); 
      var infowindow = new google.maps.InfoWindow({ 
       content: '<div id="content" onmouseover="updateContent()">Hello</div>', 
       maxWidth: 10 
      }); 
      google.maps.event.addListener(event.overlay, 'click', function() { 
       infowindow.open(map, event.overlay); 
      }); 
     } 
    }); 

    function updateContent() { 
     document.getElementById('content').innerHTML = "Yo"; 
    } 

Básicamente quiero crear una ventana de información por defecto y permitir al usuario introducir su propio texto después de que se coloque la Marke en la página ...

Respuesta

5

usted tiene que fijar el contenido a través del método setContentHTML

var infowindow ; 
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) { 
    if (event.type == google.maps.drawing.OverlayType.MARKER) { 
     //event.overlay.setTitle("Hello"); 
     infowindow = new google.maps.InfoWindow({ 
      content: '<div id="content" onmouseover="updateContent()">Hello</div>', 
      maxWidth: 10 
     }); 
     google.maps.event.addListener(event.overlay,'click',function() 
     infowindow.open(map,event.overlay); 
    }); 
}}); 

function updateContent(){ 
    infowindow.setContent("YO"); 
} 
+0

Cuando lo he intentado, aparece un error que dice que SetContentHTML no es un método del objeto infoWindow de Google (creo que es DHTML estándar, pero el objeto infoWindow de Google no lo hereda). Para lograr el objetivo del PO, extraje la ventana de información existente, creé un nuevo objeto infoWindow con el nuevo contenido y luego lo adjunté al marcador existente. –

+7

Puede usar la función "infowindow.setContent (...)" en su lugar, que funciona bien para mí :) – ghedas

+2

Buena ideación –

12

he encontrado la respuesta aceptada anterior no funcionó ya que tuve que usar setContent() de la siguiente manera:

google.maps.event.addListener(drawingManager, 'overlaycomplete', function (event) { 
    if (event.type == google.maps.drawing.OverlayType.MARKER) { 
     //event.overlay.setTitle("Hello"); 
     var infowindow = new google.maps.InfoWindow({ 
      content: '<div id="content" onmouseover="updateContent()">Hello</div>', 
      maxWidth: 10 
     }); 
     google.maps.event.addListener(event.overlay, 'click', function() { 
      infowindow.open(map, event.overlay); 
     }); 
    } 
}); 
function updateContent() { 
    infowindow.setContent("Yo"); 
} 
Cuestiones relacionadas