点击Safari标记时弹出窗口未打开

11

我正在使用Django模型显示位置,就像带有弹出窗口的标记一样:

我的视图文件

<script>
        const MAP_KEY = "{{ MAP_KEY }}";
        const added_place_json = JSON.parse('{{ added_place_json | escapejs}}');
</script>

我的 JS 文件

for (const place of added_place_json){
L.marker([place.fields.lat, place.fields.long]).bindPopup(
    `<div class="card" style="width: 15rem;">\n` +
    ` <h6 class="card-header">Name place:<br>${place.fields.name}</h6>\n` +
    `  <div class="card-body">\n` +
    `    <p class="card-text" style="overflow: scroll">Place comment:<br>${place.fields.comment}</p>\n` +
    `  </div>\n` +
    `</div>`
).addTo(map)

};

这在Google Chrome上很有效,但在Safari上无法正常工作。当我点击Safari中的标记时,什么也不会发生。

2个回答

14

这是 Leaflet 1.7.1 的一个 Bug,详见 Leaflet #7255

在最新的 Leaflet 主干版本中已经修复了该问题,详情请查看 Issue Comment

因此,我建议您将 Leaflet Release 1.7.1 中的 leaflet-src 更改为 Github 上的主干分支。


我有问题:marker-icon-2x.png:1 GET http://localhost:8000/static/place_remember/leaflet/leaflet.css/images/marker-icon-2x.png 404 (未找到) - Sh VavilenT
请查看 https://dev59.com/81YN5IYBdhLWcg3whYa3。 - Falke Design
1
这个问题已经存在将近9个月了,而且仍然存在于生产版本中。不知道如何在package.json中处理它(git分支中没有dist JS,只有zip文件中才有)。我喜欢leaflet,但这是一个无法继续的问题。 - wortwart
1
@hvsp的答案实际上是最有帮助的。在v1.8发布之前,您可以使用选项tap:false来简单初始化地图。对于问题#7255(以及其他事情)的修复会将tap选项的默认值从true更改为false - Karsten

5

这个修复方法也适用于我的问题,在那里弹出窗口只出现了一瞬间,并且只有在点击标记略微向右的位置时才能正常工作。 - TiltedBlock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接