我通过在以下代码行中更新Google maps API版本来解决以下问题:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.9
&sensor=false"> </script>
但现在我又遇到了同样的问题!我再次更新了版本(到上面看到的3.9),但内容再次没有显示在侧边栏div中(见下文)。我没有对这个代码做过任何事情,自2011年12月以来一直在线。有什么想法会突然停止工作吗?
我有一个应用程序使用谷歌地图v3与PHP和MySQL在地图上显示标记。鼠标悬停时连接到信息窗口内容(从数据库中绘制),然后在单击时显示侧面div中的新内容(也从数据库中绘制)。见:www.corkmemorymap.org
所有这一切都很好,然后突然间没有。单击栏上不再显示侧栏。什么都没发生。如果您使用地图上方的主题搜索,您可以看到应该发生的事情(点击选择主题时在地图上下拉的其中一个故事)。
此页面的代码基于Google地图文档:
http://code.google.com/apis/maps/articles/phpsqlajax_v3.html
我正在使用php echo函数来处理XML文件(这是因为托管组织有一个旧版本的php)。
我添加了此功能,以便在点击时获取侧边栏内容:
function contentBox(marker, map, sidebar, winHtml, infoWindow) {
google.maps.event.addListener(marker, 'click', function() {
document.getElementById('sidebar').innerHTML=winHtml;
/*closes the info window when users clicks the marker
and launches the content*/
infoWindow.close(map, marker);
});
}
它位于较大的ajax函数内,也在该函数内调用。
哦,这是winHtml变量:
var winHtml =
'<!DOCTYPE html>' +
'<head>' +
'<link rel="stylesheet" href="mapstyle4.css">' +
'</head>' +
'<body>' +
'<div id="sidebar">' + '<h2>' + ph_title + '</h2>'
+ '</header>' +
'<div id="photos">' +
'<img width="220" src="'+ph_web+'"/>' +
'</div>' +
'<div id="trans">' + trans_xcrpt +
'</div>' +
'<div id="audio">' +
'<audio autoplay="autoplay" controls="controls">' +
'<source src="'+audio_ogg+'" type="audio/ogg">' +
'<source src="'+audio_mp3+'" type="audio/mpeg">' +
'</audio>' +
'</div>' +
'</body>' +
'</html>';
我也在本地测试了这个(在我的MAMP上),它也没有在那里工作,这表明它已经在谷歌发生了变化。但是什么?如何找出已更改的内容以便我可以调整代码?这有发生在其他人身上吗?没有错误消息和代码已经工作了6个月,但突然间我不会在故障排除方面有点亏。
答案 0 :(得分:1)
您网页第128行的DOM引用中存在错误,从而产生以下JS错误:
TypeError: 'null' is not an object (evaluating 'document.getElementById('infoWindow').parentNode')
第128行的代码中也有换行符。
我建议删除对parentnode的引用,以便您的代码如下所示:
document.getElementById('infoWindow').style.overflow = 'visible';
一旦按照描述设置了JS,我就可以通过标记点击来获取侧边栏。