R leaflet如何通过easyButton添加带超链接的信息弹窗
实现方案
核心是将原有的alert弹窗替换为Leaflet原生的Popup组件,原生支持渲染HTML格式内容,无需引入额外依赖,修改后的完整可运行代码如下:
library(leaflet) leaf = leaflet() %>% addTiles() %>% addEasyButton(easyButton( icon = htmltools::span(class = "star", htmltools::HTML("★")), onClick = JS("function(btn, map){ map.setZoom(1);}"))) leaf %>% addEasyButton(easyButton( icon = "fa-info-circle", title = "Map Information", onClick = JS(" function(btn, map) { // 初始化弹窗,设置最大宽度 L.popup({maxWidth: 300}) // 设置弹窗弹出位置为当前地图可视区域左上角 .setLatLng(map.getBounds().getNorthWest()) // 填入自定义HTML内容 .setContent(` <p><strong>第一段标题</strong><br> 该特定功能的相关说明。</p> <p><strong>第二段标题</strong><br> 其他功能的相关说明,点击此处<a href='https://tomjenkins.netlify.app/' rel='nofollow noreferrer'>链接</a>可查看更多信息。</p> `) // 在地图上打开弹窗 .openOn(map); } ") ))
如果需要调整弹窗样式,可以在L.popup的参数里添加className自定义类名,再配合CSS修改样式即可。
内容的提问来源于stack exchange,提问作者Tom__Jenkins
相关产品推荐
相关产品推荐

