2017-03-20 4 views
0

私はmysqlからxmlを作成し、マップ上にマーカーを表示することに成功しました(wo-hoo)。Google maps marker infowindow a hrefがリンクとしてレンダリングされていない

このスクリプトには、いくつかの基本データを含む情報ウィンドウが含まれています。私は外部URLをURLに新しいウィンドウを開きたいと思っています。

URLとHREFタグが美しく示して - それが問題だ - 私はそれをクリックすることができるようにしたい:)

誰かがこれを行うには、コードで私を助けていただけますか?私はデータベースからマーカーを取得するために1週間を使用していることを覚えておいてください。私はコードを再構築する立場にはない(私が望む)。

This is the output I get

<script> 
    function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
     center: new google.maps.LatLng(37.4419, 10.0), 
     zoom: 3 
    }); 
    var infoWindow = new google.maps.InfoWindow; 

     // Change this depending on the name of your PHP or XML file 
     downloadUrl('mapxml.php', function(data) { 
     var xml = data.responseXML; 
     var markers = xml.documentElement.getElementsByTagName('marker'); 
     Array.prototype.forEach.call(markers, function(markerElem) { 
      var name = markerElem.getAttribute('name'); 
      var country = markerElem.getAttribute('country'); 
      var url = markerElem.getAttribute('url'); 
      var point = new google.maps.LatLng(
       parseFloat(markerElem.getAttribute('lat')), 
       parseFloat(markerElem.getAttribute('lng'))); 
      var infowincontent = document.createElement('div'); 
      var strong = document.createElement('strong'); 
      strong.textContent = name 
      infowincontent.appendChild(strong); 
      infowincontent.appendChild(document.createElement('br')); 
      var text = document.createElement('url'); 
      text.textContent = "<a href='" + url + "'>" + name + "</a>"; 
      infowincontent.appendChild(text); 
      var marker = new google.maps.Marker({ 
      map: map, 
      position: point, 
      }); 
      marker.addListener('click', function() { 
      infoWindow.setContent(infowincontent); 
      infoWindow.open(map, marker); 
      }); 
     }); 
     }); 
    } 

    function downloadUrl(url, callback) { 
    var request = window.ActiveXObject ? 
     new ActiveXObject('Microsoft.XMLHTTP') : 
     new XMLHttpRequest; 

    request.onreadystatechange = function() { 
     if (request.readyState == 4) { 
     request.onreadystatechange = doNothing; 
     callback(request, request.status); 
     } 
    }; 

    request.open('GET', url, true); 
    request.send(null); 
    } 

    function doNothing() {} 
</script> 

答えて

0

カスタムHTML要素を操作している場合を除き、以下の

var text = document.createElement('url'); 
    text.textContent = "<a href='" + url + "'>" + name + "</a>"; 

は動作しません。あなたの代わりに試してみてください

var text = document.createElement('a'); 
    text.href=url; 
    text.textContent = name; 
+0

ありがとうございました!今すぐリンクを新しいタブ_blankを開くようにする方法: – kyrre

+1

'text.target = '_ blank''を設定するだけです – amenadiel

関連する問題