我有一个带点图层的openlayers地图,单击某个要素会打开一个弹出窗口。在弹出窗口中,我显示了一个可单击的链接,该链接应该指向存储在图层的属性表中的URL。
但是,如果我单击该层,则会打开一个指向“ C:/ Users / user /.../ URL”之类的路径的链接。该URL是我想要的,但是浏览器还会打开保存项目的路径。
我的代码:
set.seed()
如果我用map.on('click', function(event) {
var feature = map.forEachFeatureAtPixel(event.pixel, function(feature, layer) {
if (layer === knoten) {
return feature;
}
});
if (feature != null) {
var pixel = event.pixel;
var coord = map.getCoordinateFromPixel(pixel);
popup.setPosition(coord);
$(elementPopup).attr('data-content', '<b>1: </b>' + ' ' + feature.get('ERHEB_NR') +
'</br><b>2: </b>' + '   ' + '<a id="link" target="_blank" rel="noopener noreferrer">Link</a>');
$(elementPopup).popover({'placement': 'top', 'html': true});
$(elementPopup).popover('show');
document.getElementById('link').href = feature.get('KATASTER')
}
else {
$(elementPopup).popover({'html': true});
$(elementPopup).popover('hide');
}
});
代替'<a id="link" target="_blank" rel="noopener noreferrer">Link</a>'
,则会显示正确的链接(但由于它不在语句内,因此无法单击)。
答案 0 :(得分:0)
如何使用content
选项初始化popever,而不是仅更新链接?
map.on('click', function(event) {
var feature = map.forEachFeatureAtPixel(event.pixel, function(feature, layer) {
if (layer === knoten) {
return feature;
}
});
// Always hide the popover
$(elementPopup).popover('hide');
if (feature != null) {
var pixel = event.pixel;
var coord = map.getCoordinateFromPixel(pixel);
popup.setPosition(coord);
$(elementPopup).popover({
placement: 'top',
animation: false,
html: true,
trigger: 'focus',
title: "",
content: '<b>1: </b>' + ' ' + feature.get('ERHEB_NR') +
'</br><b>2: </b>' + '   ' + '<a id="link" target="_blank" href="'+feature.get('KATASTER')+'" rel="noopener noreferrer">Link</a>'
});
});