如何在不使用JSON打开浏览器标签的情况下使用“ mailto”属性?

时间:2018-10-24 11:28:31

标签: javascript html json leaflet

面临问题

当单击地图弹出窗口中的mailto链接时,JSON弹出窗口会打开一个新的浏览器选项卡以及一个默认的电子邮件程序。

我在做什么

使用Leaflet显示地图标记,我正在使用JSON文件来显示产生弹出窗口的标记。

这部分工作正常。问题是,当我单击mailto电子邮件地址时,它还会打开一个新的浏览器标签。

我尝试将属性url替换为其他各种属性,例如hreflink,但这些只是使链接不可用。

这是我在JSON文件中使用的代码。

markers = [
  {
    "name": "NameNo1",
    "url": "mailto:mail@name1.com",
    "lat": 3.046111,
    "lng": 101.606111
  },
  {
    "name": "NameNo2",
    "url": "mailto:mail@name2.com",
    "lat": 2.9580555,
    "lng": 101.78666
  },
  {
    "name": "NameNo3",
    "url": "mailto:mail@name3.com",
    "lat": 3.008611,
    "lng": 101.592222
  }
];

我要发生的事情

在弹出窗口中单击mailto链接时,仅应打开默认电子邮件程序。

如何调整此JSON代码,以便当我单击url字段时,它仅打开默认的电子邮件程序,而没有打开新的浏览器选项卡?

1 个答案:

答案 0 :(得分:0)

我刚刚发现答案在我的javascript文件中的代码中,

 L.marker( [markers[i].lat, markers[i].lng], {icon: myIcon} )
.bindPopup( '<a href="' + markers[i].url + '" target="_blank">' + markers[i].name + '</a>' 
)
.addTo( map );

我将目标更改为顶部:

 L.marker( [markers[i].lat, markers[i].lng], {icon: myIcon} )
.bindPopup( '<a href="' + markers[i].url + '" target="_top">' + markers[i].name + '</a>' )
 .addTo( map );

我简直不敢相信它是如此简单,我只是花了几个小时试图在json中修复它