2012-11-15 47 views
1

我對Google Fusion非常陌生,但很想學習。 我創建了一個地圖,自定義了infowindow,並使用FusionTablesLayer嚮導將地圖嵌入到我的網站上,以創建一個腳本以託管在同一個域中。這樣做,我可以使用target = _parent來代替infowindow中的鏈接,而不是使用惱人的target = _blank命令。 從那時起,我發現,由於安全性,你必須添加一個點擊監聽器才能使trget = _parent工作,這就是我的能力停下來的地方。 任何人都可以幫助我啓用監聽器,配置infowindow和最重要的是,獲得目標= _parent的工作。使用點擊監聽器在Google Fusion地圖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

我真的希望有人出去還有可以幫我

延Skriver史蒂芬森

回答

1

要「目標= _parent」添加到從FusionTables預先存在的內容,這樣的事情應該工作:

var newContent = e.infoWindowHtml.replace("/<a /<a target='_parent' /g"); 

您添加點擊收聽與google.maps.addListener方法您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。

Working Example

相關問題