2014-02-27 87 views
2

第一次在這裏提問。所有新編碼都很溫和。帶有kml圖層的Google地圖。 Google將_blank添加到信息窗口鏈接

我有這樣的谷歌地圖,在那裏我將通過〜KML文件,其中包括了地圖信息窗口的一些信息70個標記。這一切工作得很好。

但是,當我添加鏈接到信息窗口谷歌在某種程度上增加了「目標=‘_空白’」那些鏈接使其在新窗口中打開。不過,我希望鏈接在同一個窗口中打開。有沒有辦法做到這一點?

我正在使用的代碼:

<script type="text/javascript"> 
function initialize() { 
var mapOptions = {center: new google.maps.LatLng(56.100, 10.000), zoom: 8}; 
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 
var ctaLayer = new google.maps.KmlLayer({url: 'link-to-my.kml'}); 
ctaLayer.setMap(map); } 
google.maps.event.addDomListener(window, 'load', initialize); 
</script> 

而且信息我在KML文件看起來像這樣:

<Placemark> 
<styleUrl>#icon-981</styleUrl> 
<name>Some name</name> 
<description><![CDATA[<a href="link.html">Click this</a>]]></description> 
<Point> 
<coordinates>8.450037000000066,55.477908,0.0</coordinates> 
</Point> 
</Placemark> 

所以,basicly的問題是:我怎樣才能得到這些鏈接在同一窗口中打開?

回答

1

<description/>將被過濾以防止濫用(請注意,KMLLayer也可能被其他資源使用,例如它可能會加載到maps.google.com中,因此他們必須確保它不包含惡意代碼)。

我猜target="_blank"是潔淨的一部分,它應該離開當前頁面阻止。

可能有不同的選項刪除target,該simpliest應該是信息窗口打開之前,操縱infoWindowHtml

google.maps.event.addListener(ctaLayer,'click',function(e){ 
    e.featureData.infoWindowHtml 
    = e.featureData.infoWindowHtml.replace(/target="_blank"/g,''); 
    }) 
+0

感謝您的回答,但它不工作。即使添加了一些代碼後,鏈接上仍然有_blank。 我在之前插入了它 - 正確還是應該放到其他位置? – user3360856

+0

您必須將它放在可以訪問'google'和'ctaLayer'的地方:http://jsfiddle.net/doktormolle/ryTr6/ –

+0

Bingo!那就是訣竅。謝謝! – user3360856

相關問題