谷歌地图api通过点击信息窗口内的链接打开新的信息窗口
Google maps api open new infowindow by clicking link inside infowindow
我试图关闭旧的信息窗口并打开新的信息窗口(或替换此信息窗口上的内容),但我无法使其工作。我试着用谷歌搜索一下。如果我现在尝试一下,谷歌Chrome浏览器开发工具的控制台会显示"Uncaught TypeError:无法读取未定义的属性'close'"。
<script>
var map;
var marker;
var markerInfoWindow;
function intMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(60.3000216, 24.944929),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
// Create a new marker
var marker = new google.maps.Marker({ draggable: true, icon: 'images/new_marker.png' });
var markerInfoWindow = new google.maps.InfoWindow();
google.maps.event.addListener(map, 'click', function(event) {
marker.setPosition(event.latLng);
marker.setMap(map);
var contentString = "<a href='#' onclick='openNew();'>Click here to open new infowindow!</a>";
var markerInfoWindow = new google.maps.InfoWindow({
content: contentString
});
markerInfoWindow.open(map, marker);
marker.addListener('click', function() {
markerInfoWindow.open(map, marker);
});
});
}
google.maps.event.addDomListener(window, "load", intMap);
function openNew() {
markerInfoWindow.close();
var contentString = "Open this infowind when clicked link";
var markerInfoWindowNew = new google.maps.InfoWindow({
content: contentString
});
}
</script>
您对变量markerInfoWindow
的作用域有问题-在您的代码中,您创建了一个隐藏外部的新本地
var map;
var marker;
var markerInfoWindow;
function intMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(60.3000216, 24.944929),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
// Create a new marker
marker = new google.maps.Marker({
draggable: true,
icon: 'images/new_marker.png'
});
markerInfoWindow = new google.maps.InfoWindow();
google.maps.event.addListener(map, 'click', function(event) {
marker.setPosition(event.latLng);
marker.setMap(map);
var contentString = "<a href='#' onclick='openNew();'>Click here to open new infowindow!</a>";
markerInfoWindow = new google.maps.InfoWindow({
content: contentString
});
markerInfoWindow.open(map, marker);
marker.addListener('click', function() {
markerInfoWindow.open(map, marker);
});
});
}
google.maps.event.addDomListener(window, "load", intMap);
function openNew() {
markerInfoWindow.close();
var contentString = "Open this infowind when clicked link";
markerInfoWindow = new google.maps.InfoWindow({
content: contentString
});
markerInfoWindow.open(map, marker);
}
相关文章:
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- 谷歌地图点击潜水触发信息窗口
- 将FlowPlayer嵌入谷歌地图信息窗口
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- 当我浏览回页面时,谷歌地图信息窗口不会弹出
- 谷歌地图信息窗口Z索引
- 如何隐藏标记簇内标记的信息窗口
- 谷歌地图信息窗口为每个标记显示相同的内容
- 更改内容信息窗口映射v3
- Cartodb信息窗口未在地图上显示变量
- 为位于路线上的谷歌地图标记(起点和终点)设置一个信息窗口
- 信息窗口谷歌地图点击事件给出错误
- Javascript谷歌地图每个信息窗口
- 更新打开的谷歌地图信息窗口
- 如何在显示多个标记时单击另一个标记时关闭信息窗口
- 在弹出窗口中获取信息
- 禁用角度地图中标记和信息窗口的ng点击
- 在谷歌地图的信息窗口内点击按钮
- 谷歌从数组中映射标记、折线和窗口信息
- 使用javascript打开一个带有前一个窗口信息的新窗口