这是一篇来自cssrain站长的译文。很多时候,我们都不敢在自己的勃客、网站上留下自己的mail,因为这会带来大量的垃圾邮件。
但如果不留mail,又会让很多用户、过客无法与自己联络,这真是一个两难的问题。在几年前就有那种把email改成用document.write输出的情况。但这种并不实用。
看完这篇文章,或者你应该有相对较好的方法来处理你的邮件,不过我个人推荐的是这种;
- <!--这是一个简单的例子,可能并不能运行,我是直接手工输入的,没有debug,只是介绍原理-->
- <a
href="#" onclick="sendmail()" id='sendmail'>gou<span class="bgcolor">0982134</span>ki@<span class="bgcolor">0912ujf</span>neatdns.com</a> - <script>
- function
sendmail(){ -
$('#sendmail span').remove(); -
//然后反$('#sendmail').text() 拷贝到剪贴板,给用户提示一下 - }
- </script>
改写了一下,终于可以走通了,不会用clone,只能用这种替代方案了。。代码较差:
- <script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> - <style>
- #sendmail
span{display:none} - #hiddenmail
{display:none} - </style>
- <a
href="#" id='sendmail'>gou<span>0982134</span>ki@<span>0912ujf</span>neat<span>091r</span>dns.com</a><span id="hiddenmail"</span> - <script>
- $(document).ready(function(){
-
$('#hiddenmail').html( $("#sendmail").html()); -
$("#hiddenmail span").remove(); -
$('#sendmail').attr("href" ,"mailto:"+$("#hiddenmail").text()); - });
- </script>
以下是66[cssrain站长]翻译的文章内容:
一直以来我都认为” mailto: “是一个神圣的链接。通过它,我可以在网页中发布我的email地址,并且任何人都可以通过单击这个链接联系我。当然前提是在一个纯洁的Web环境下 ---在垃圾邮件发送者出来之前。举个例子说:今天你在你的网页中使用了” mailto: “,那么30秒后你将收到第一封伟哥信息。垃圾邮件发送者的速度之快另你惊讶。从今以后,你将收到越来越多的垃圾邮件。那么我们有什么办法,在自己的网页中发布自己邮箱的同时,不引起垃圾邮件发布者的注意呢?
最明显的解决办法是在你的HTML中使用机器不可读的Email。比如:“bob (at) bobsdomain dot com”。虽然这可以使垃圾邮件发送者不再那么容易,但它同时也会为难您的用户。
另一种选择是使用JavaScript生成的电子邮件地址 ,然后对字符串加点编码。如:
<p>contact :
<script type="text/javascript">
document.write('<a href="mai'+"lto"+"bob"+'@'+'bobsdomain.com">bob@'+"bobsdomain.com</a>");
</script> </p>
( 我不推荐使用 document.write() )
一个更好的解决办法是使用它们两者相结合的技术,以阻止垃圾邮件,同时不会造成用户的困难。
首先在我的网页中使用一个人性化的,同时垃圾邮件发送者不能收集的email地址。我们还将它链
接到一个联络网页,例如:
< p>Contact
请注意,我们为链接添加了一个class,并设置为”email”。
接下来写一个JavaScript函数搜寻网页的伪装的电子邮件,并将它转换成真正的” mailto:“链接。
我们将创建一个' email.js '文件,将它包括在我们的HTML里:
< script
所需要的代码很短,代码如下:
function EmailUnobsfuscate() {
}
window.onload = EmailUnobsfuscate;
使用两者结合的结果是:
1、我们的原始HTML网 页中没有”mailto:”链接,同时也不会轻易收到垃圾邮件发送者发来的垃圾邮件。
2、绝大多数的用户(那些启用JavaScript)将看到一个标准的电子邮件地址和“mailto:”链接。
3、少部分禁用脚本的用户可以看到“bob (at) bobsdomain dot com”的地址。
说了这么多,意图就是展示这些概念,而不是这些代码。尽管例子能正常工作,但我还是建议你:
1、使用您自己的伪装电子邮件格式,例如:“bob{@} bobsdomain – dot - com”。
2、使用不同的链接标识符---“email”有点明显!
3、使用JavaScript库, 例如jQuery ,使代码更为简短。您还应该确保它应付空格或其他DOM节
点周围的电子邮件地址文字(不处理的代码段)。
4、使用一个更强大的事件处理程序来取代window.onload。