views:

7394

answers:

4

I have a Google Map that suddenly stopped working for no apparent reason (I hadn't touched the code for months, but the wrapper code from our CMS may have changed without Corporate telling me).

http://www.democratandchronicle.com/section/builder

(sorry about the nasty HTML outside the map, most of that comes from our corporate parent...)

I've narrowed it down to this part of my drawMarker function:

GEvent.addListener(marker, 'click', function() {
  marker.openInfoWindowHtml(html, { maxWidth: 500 });
});

Of note:

  • alert(html); displays the correct HTML for the infowindow.
  • The HTML in the html variable is indeed valid.
  • The click event is firing (confirmed by alert('test'); within it)
  • Another map I host on the same site works fine, despite similar code.
  • No JavaScript errors in Firebug or IE that I can see.

I've been bashing my head against this for a while. What am I missing?

A: 

Try forcing JavaScript to make a new variable out of your HTML:

GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html+'', { maxWidth: 500 });
});
Diodeus
+1  A: 

I've had random problems with Google Maps API at times and more than once it has been fixed by going back one API version. i.e. if your google maps API javascript inclusion string is like this http://maps.google.com/maps?file=api&v=2.xd&key=XXXXX change the 2.x to something a few versions back (back when it was working) like 2.132 or something

Daniel Beardsley
+1  A: 

try:

GEvent.addListener(marker, 'click', function() {
  this.openInfoWindowHtml(html, { maxWidth: 500 });
});

remember the scope of the object "marker" is outside your function

Keith Fitzgerald
A: 

This resolved itself. I suspect an update to the API broke something for a version or two.

ceejayoz

related questions