0
私はmysqlからxmlを作成し、マップ上にマーカーを表示することに成功しました(wo-hoo)。Google maps marker infowindow a hrefがリンクとしてレンダリングされていない
このスクリプトには、いくつかの基本データを含む情報ウィンドウが含まれています。私は外部URLをURLに新しいウィンドウを開きたいと思っています。
URLとHREFタグが美しく示して - それが問題だ - 私はそれをクリックすることができるようにしたい:)
誰かがこれを行うには、コードで私を助けていただけますか?私はデータベースからマーカーを取得するために1週間を使用していることを覚えておいてください。私はコードを再構築する立場にはない(私が望む)。
<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>
ありがとうございました!今すぐリンクを新しいタブ_blankを開くようにする方法: – kyrre
'text.target = '_ blank''を設定するだけです – amenadiel