tl; dr
在不使用脚本的情况下从漫游器隐藏电子邮件地址并维护mailto:
功能。方法还必须支持屏幕阅读器。
概要
电子邮件混淆,无需使用脚本或联系表格
电子邮件地址必须对观众完全可见,并保持
mailto:
功能电子邮件地址不能为图像形式。
电子邮件地址必须对垃圾邮件抓取者和垃圾邮件机器人以及任何其他收割者类型“完全”隐藏
所需效果:
请没有脚本。项目中没有使用脚本,我想保持这样。
电子邮件地址可以显示在页面上,也可以在用户进行某种形式的交互后轻松显示,例如打开模式。
该用户可以点击的电子邮件地址,这反过来会触发
mailto:
功能。单击电子邮件将打开用户的电子邮件应用程序。
换句话说,
mailto:
功能必须起作用。电子邮件地址不可见或未标识为机器人的电子邮件地址(包括页面源)
我的收件箱里没有垃圾邮件
什么不工作
添加联系表格-或类似内容-代替电子邮件地址
我讨厌联络表格。我很少填写联系表格。如果没有电子邮件地址,我会寻找电话号码,如果没有电话号码,我会开始寻找替代服务。如果绝对需要,我只会填写联系表格。
用地址图像替换地址
这会对使用屏幕阅读器的人造成巨大的不利影响(请记住,您未来的项目中有视力障碍的人)
除非您使图像可单击,然后再将该功能添加为链接的,否则它还会删除该
mailto:
功能,但这违背了目的,并且现在僵尸程序可以看到该电子邮件。mailto:
href
可能有效的方法:
巧妙地使用
pseudo-elements
inCSS
利用
base64
编码的解决方案分解电子邮件地址并在文档中散布各个部分,然后在用户单击按钮时将它们放回模态中(这可能涉及多个
CSS
类和的用法anchor tags
)html
通过更改属性CSS
@MortezaAsadi在下面的评论中优雅地提出了可能性。这是完整链接-该文章来自2012年:
我所不了解的其他创造性解决方案。
类似的问题/修复
(这是乔·马勒(Joe Maller)提出的一个很好的解决方案,它可以很好地工作,但是它是基于脚本的。
<SCRIPT TYPE="text/javascript">
emailE = 'emailserver.com'
emailE = ('yourname' + '@' + emailE)
document.write('<A href="mailto:' + emailE + '">' + emailE + '</a>')
</script>
<NOSCRIPT>
Email address protected by JavaScript
</NOSCRIPT>
-
(A聪明的解决方案同时使用
PHP
,并CSS
于第一反向使用电子邮件,然后PHP扭转它与CSS回)一个非常有前景的解决方案,伟大的作品!但这太容易解决了。 -
(JavaScript修复)
-
所选答案有效。实际上,它确实运作良好。它涉及将电子邮件编码为
html entities
。可以改善吗?这是它的样子;
<A HREF="mailto: yourname@domain.com"> yourname@domain.com </A>
-
(此超级用户问题的选定答案非常好,它提出了使用不同混淆方法接收的垃圾邮件数量的研究。
似乎可以使用
CSS
来处理电子邮件地址rtl
。这与本节中链接到的第一个问题所使用的方法相同。我不确定
mailto:
向修复程序添加功能会对结果产生什么影响。 关于SO的其他问题也都有很多类似的答案。我没有找到适合我期望效果的任何东西
问题:
是否有可能以提高效率(即尽可能少的垃圾邮件越好)通过电子邮件混淆上面的方法将两个或更多的修复程序(甚至增加新的修补程序),而:
A-维护mailto:
功能;和
B-支持的屏幕阅读器
编辑:
下面的许多答案和评论都提出了一个很好的问题,同时指出了在没有某种形式的情况下不可能做到这一点js
提出/提出的问题是:
为什么不使用
js
?
答案是我对 js
虽然开玩笑
我问这个问题的三个主要原因是:
联系表格已越来越被人们接受,以取代提供电子邮件地址的方式,但他们不应该这样做。
如果可以不使用脚本就可以完成,那么应该不用脚本就可以完成。
好奇心:(因为我实际上正在使用其中一种
js
修复程序)我想看看讨论此事是否会导致更好的解决方法。
mailto:
功能并且不愿意使用Javascript,那么这是不可能的。