解决:<a>标签中 href:mainto 无法调起本地邮件客户端问题

问题描述

在页面(单页面应用)上使用了标签,在 href 属性中设置了邮箱的地址,例如:

<a href="mailto:aa@bb.com">aa@bb.com</a>

在页面上点击邮箱 aa@bb.com的时候,页面地址栏中的最后一级目录会展示为:falthpath。
页面上对应的也就是路由中配置的当找不到当前路径时的错误,通常是一个 404 页面。

分析

这个应该是在点击邮箱的时候,网页应用把 href 后面的值当作路由的名称来使用了。
所以,把 href 的值当作地址栏的最后一个目录来使用的时候,当前的 url 就是一个并不存在的地址了,
所以会展示上面的 404 页面,或者其他设置的找不到当前路径时候配置的错误页面。

解决

标签中的href中,不直接使用要跳转的地址,而是使用一个 JavaScript 表达式可以用来阻止某些链接或者按钮的默认行为而去执行绑定的其他事件,即:javascript:void(0);,然后给这个标签,加上一个原生的点击事件,在
这个事件里面,去执行要跳转的操作。即:

<a href="javascript:void(0);" onclick="javascript:window.location.href='mailto:[email protected]'; return false;">[email protected]</a> 

这样的话,就可以在单页面的代码中,一样实现通过在页面上点击邮箱地址来实现调起本地的邮件客户端了。

参考

http://hk.uwenku.com/question/p-fcwjdqrl-bnb.html
https://m.yisu.com/zixun/106415.html

原文地址:https://www.cnblogs.com/zxxsteven/p/14833000.html