0

次のようなコードを使用して、Google からマップに kml をロードしています。

var myOptions = {
    mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
var kmlLayer = new google.maps.KmlLayer('https://maps.google.com/maps/ms?authuser=0&vps=2&ie=UTF8&msa=0&output=kml&msid=209879288832578501414.0004c52d678cf88f70685');
kmlLayer.setMap(map);

問題は、ポップアップへのリンクであり、kml が追加 target="_blank"しますが、私はそれを望んでいません。

JavaScriptを使用して削除するにはどうすればよいですか? この回答を見つけましたが、API 3 では機能しません。jQuery は使用したくありません。

4

2 に答える 2

0

@geocodezipのコメントで解決策が得られました。完璧ではありませんInfoWindow。頭ではなくマーカーの足元から始まりますが、何かです。

var infoWindow;
var map;

function initialize() {
    var myOptions = {
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);

    var opts = {suppressInfoWindows: true};
    var kmlLayer = new google.maps.KmlLayer('https://maps.google.com/maps/ms?authuser=0&vps=2&ie=UTF8&msa=0&output=kml&msid=209879288832578501414.0004c52d678cf88f70685', opts);
    kmlLayer.setMap(map);

    infoWindow = new google.maps.InfoWindow();

    google.maps.event.addListener(kmlLayer, 'click', function(kmlMouseEvent) {
        var name = kmlMouseEvent.featureData.name;
        var descr = kmlMouseEvent.featureData.description.replace(/ target="_blank"/ig, '');
        var dom = '<div style="font-family: Arial, sans-serif; font-size: small">' +
            '<div style="font-weight: bold; font-size: medium; margin-bottom: 0em">' +
            name +
            '</div>' +
            '<div>' +
            descr +
            '</div>' +
            '</div>';
        infoWindow.setContent(dom);
        infoWindow.setPosition(kmlMouseEvent.latLng);
        infoWindow.open(map);
    });
}
于 2012-07-21T16:05:46.500 に答える
0

jQueryによって、

マップがロードされた後にこれを行います。

$('a[target="_blank"]').prop('target','_self'); 
于 2012-07-19T14:22:28.863 に答える