【问题标题】:How to use 'mailto' attribute without opening a browser tab using JSON?如何在不使用 JSON 打开浏览器选项卡的情况下使用“mailto”属性?
【发布时间】:2018-10-24 11:28:31
【问题描述】:

面临的问题

当点击地图弹出窗口中的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字段时,它只打开默认的电子邮件程序,而不打开新的浏览器选项卡?

【问题讨论】:

  • "这是我在 JSON 文件中使用的代码" — 是 JavaScript,不是 JSON

标签: javascript html json leaflet


【解决方案1】:

我刚刚发现答案在我的 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 中解决这个问题

【讨论】:

    猜你喜欢
    • 2022-12-07
    • 2012-01-26
    • 2022-12-09
    • 2014-11-15
    • 1970-01-01
    • 2017-03-04
    • 2018-08-04
    • 2013-12-09
    • 2017-01-28
    相关资源
    最近更新 更多