【问题标题】:Enabling target=_'parent' in Google Fusion Map infowindow using click listener使用点击监听器在 Google Fusion Map 信息窗口中启用 target=_'parent'
【发布时间】:2012-11-04 12:14:30
【问题描述】:

我对 Google Fusion 还很陌生,但很想学习。 我创建了一个地图,自定义了信息窗口并使用 FusionTablesLayer 向导将地图嵌入到我的站点中,以创建要在同一域上托管的脚本。这样做,我认为可以在 infowindow 中使用 target=_parent 作为我的链接,而不是使用烦人的 target=_blank 命令。 从那时起,我发现,出于安全考虑,您必须添加一个单击侦听器才能使 trget=_parent 正常工作,这就是我的能力停止的地方。 谁能帮我启用监听器,配置信息窗口,最重要的是,让 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

我真的希望有人可以帮助我

延斯·斯克里弗·史蒂芬森

【问题讨论】:

    标签: html google-maps google-maps-api-3 google-fusion-tables


    【解决方案1】:

    要将“target=_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”选项来禁用默认信息窗口。

    Working Example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-28
      • 2015-07-21
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 2013-08-14
      • 2013-05-16
      相关资源
      最近更新 更多