我对Google Fusion很陌生,但热衷于学习。 我创建了一个地图,自定义了infowindow并使用FusionTablesLayer向导将地图嵌入到我的网站上,以创建一个托管在同一个域上的脚本。这样做,我认为可以使用target = _parent作为infowindow中的链接,而不是令人讨厌的target = _blank命令。 从那以后我发现,由于安全性,你必须添加一个点击监听器才能得到trget = _parent工作,这就是我的能力停止的地方。 任何人都可以帮我启用监听器,配置infowindow,最重要的是,让target = _parent工作。
这是一些代码,我希望你可以使用。
信息窗口:
<div class='googft-info-window' style='font-family:Georgia, sans-serif' "width: 250px;" >
<base target="_parent" />
<b><a href="{info-URL} " ">{Skole}</a></b></b><br>
<i>Åbner i ny fane/nyt vindue</i><br><br>
{Adresse}<br><br>
<b>Elevtal:</b> {Elevtal}<br>
<b>Rang 2010/2011:</b> {Rangering til kort}/107<br><br>
<b>Gennemsnit 2010/2011</b><br>
<b>Dansk:</b> {Dansk total}<br>
<b>Engelsk:</b> {Engelsk total}<br>
<b>Fysik/kemi:</b> {Fysik/kemi total}<br>
<b>Matematik:</b> {Matematik total}<br><br>
<b>Samlet gennemsnit:</b> {Skolegennemsnit}<br><br>
{NOTE}<br><br>
<a href="{Skole-URL}" target=_blank>Hjemmeside</a>
</div>
FusionTablesLayer向导代码
<!DOCTYPE html>
<html>
<head>
<base target="_parent" />
<style>
#map-canvas { width:700px; height:400px; }
</style>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
var map;
var layerl0;
function initialize() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(57.17199198214385, 9.771527295703208),
zoom: 8
});
var style = [
{
featureType: 'all',
elementType: 'all',
stylers: [
{ saturation: 9 }
]
}
];
var styledMapType = new google.maps.StyledMapType(style, {
map: map,
name: 'Styled Map'
});
map.mapTypes.set('map-style', styledMapType);
map.setMapTypeId('map-style');
layerl0 = new google.maps.FusionTablesLayer({
query: {
select: "'col2'",
from: 'table-id'
},
map: map,
styleId: -1,
templateId: 1
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
地图现在在www.skoleguide.net处于在线状态,并且我从here
获得了点击监听器的灵感我真的希望,那里有人可以帮助我
Jens Skriver Steffensen
答案 0 :(得分:1)
要将“target = _parent”添加到FusionTables的预先存在的内容中,这样的内容应该有效:
var newContent = e.infoWindowHtml.replace("/<a /<a target='_parent' /g");
添加点击聆听您的FusionTable
这样的事情应该有效:
//add a click listener to the layer
google.maps.event.addListener(layer10, 'click', function(e) {
//update the content of the InfoWindow
var newContent = e.infoWindowHtml.replace("/<a /<a target='_parent' /g");
infowindow.setOptions({
content: newContent,
pixelOffset: e.pixelOffset,
position: e.latLng
});
infowindow.open(map);
});
请务必通过向FusionTablesLayer构造函数添加“suppressInfoWindows:true”选项来禁用默认的infowindows。