用jQuery保护邮件地址

保护邮件地址的方法为数众多,随便一搜就能找出大把。若是刚好有使用 jQuery 框架,我这里有个用 jQuery 保护邮件地址的方案。此方案的优点在于:邮件地址分段存储在 JS 之中,链接被点击以后,邮件地址才会从 JS 中调出并写入 HTML 页面,目前再厉害的机器人拿它都没办法,除非开着浏览器点击。缺点嘛,访客的浏览器不支持 JS 的话会被当作机器人对待XD。

另外需要说明的是,代码本来很简单,但是考虑到大众的审美需求,多数人都会喜欢稍稍华丽的过渡效果,所以先提供一个所谓的"华丽版"(演示地址):

html:

<p>我的邮箱:<a href="javascript:void(0)" class="email">点击查看</a></p>

js:

$(document).ready(function(){
$(".email").click(function(){
var A="admin"
var B="domain.com"
var C=A+"@"+B;
$(this).parent().append("<img src='loading.gif' />");
$(this).hide();
setTimeout(function(){
var D=$(".email");
D.next().hide();
D.text(C);
D.attr("href","mailto:"+C).unbind("click");
D.fadeIn(1000)
},3000)
})
})

使用时,红色字体是你需要修改的部分,然后将 JS 保存为一个文件在网页上引用。链接被点击后,浏览者需要等待三秒才会看见邮件地址,既然假装异步我们就假装到底。其中用到了一个 loading 图片,你可以换成你自己的。

最后再来个朴素版:

$(document).ready(function(){
$(".email2").click(function(){
var A="admin"
var B="domain.com"
var C=A+"@"+B;
$(this).text(C);
})
})

没了。

Tag(s):
  • QQ书签
  • Del.icio.us
  • 百度收藏
  • Google
  • 饭否
  • FriendFeed
Shawn Published@22:54 / 2009-01-11 / Trackback / Skip
33 Comments Contributed by Visitors
  1. rebuttonkerby / 0:07@2009-01-12 1
    kerby

    这就是大湿正在用的效果,终于知道方法了,哦也

  2. rebuttonShawn / 0:24@2009-01-12 2
    Shawn

    @kerby: 看来我切换的 DNS 正在生效,不过 GR 还更新不了。。。

  3. rebuttonfqch / 2:17@2009-01-12 3
    fqch

    这么晚来也没能占个沙发~遗憾

  4. rebuttonfqch / 2:18@2009-01-12 4
    fqch

    简单有效技术贴~收藏先.

  5. rebuttonwelee / 2:21@2009-01-12 5
    welee

    这个不错,先学起来,接着用在我的博客,谢谢 :grin:

  6. rebuttonxiaorsz / 2:46@2009-01-12 6
    xiaorsz

    我的邮箱就在那裸奔着呢,貌似也没什么垃圾邮件!!忧伤!!!

  7. rebuttonwelee / 3:06@2009-01-12 7
    welee

    @xiaorsz: 没垃圾邮件不好吗?呵呵。 :shock:

  8. rebuttonleehow / 8:10@2009-01-12 8
    leehow

    为什么要等那三秒?

  9. rebuttonLeeiio / 9:19@2009-01-12 9
    Leeiio

    我費解的是不管如何我的gmail總是有刪不盡的垃圾郵件~

  10. rebuttonGeedr.com / 9:25@2009-01-12 10
    Geedr.com

    值得推广,大湿啊大湿

  11. rebuttongeuro / 10:18@2009-01-12 11
    geuro

    真是好方法。

  12. rebutton浮黑 / 10:44@2009-01-12 12
    浮黑

    华丽版实在太骚包了 :grin:

  13. rebuttonfisio / 12:27@2009-01-12 13
    fisio

    @浮黑: 大师不能叫骚,应该叫修为.. 哈哈

  14. rebuttoniColor / 13:18@2009-01-12 14
    iColor

    "华丽"版本 那个 沙漏 转动时间/圈数 是动态的?还是死的?

  15. rebuttonShawn / 13:28@2009-01-12 15
    Shawn

    @fqch: 主要是我换了主机,GR 反应慢了点。。

    @welee: 哈哈,武装自己的新皮是一件有趣的事情。

    @xiaorsz: 重复 Welee 的话,没有垃圾邮件还不好吗?

    @leehow: 等三秒没目的,就是假装加个过渡,让人看着像在载入数据。

    @Leeiio: 应该是有人在卖邮件列表,另外 Spammer 也应该有自己的扫描器。非中文的 SPAM 可以不予理会,有没有被盯上的具体表现还看中文垃圾邮件的数量。

    @Geedr.com: 哈哈,是的,大湿。

    @geuro: 谢谢,这个方法主要的好处就是邮件地址不存储于页面,JS 里也分段存,机器人现在还没有那么高超的技术能通过扫描找到邮件地址。

    @浮黑: 烧包一点显得"高科技"嘛。

    @fisio: 大湿,烧包,绝配。。。

    @iColor: 其实很低级,就是个动态的沙漏转动图片。

  16. rebuttonscavin / 13:57@2009-01-12 16
    scavin

    我每次最喜欢的就是演示地址。。。

  17. rebuttonShawn / 14:08@2009-01-12 17
    Shawn

    @scavin: 今日天气如此之好,你为啥在屋里窝着?

  18. rebuttonscavin / 14:27@2009-01-12 18
    scavin

    @Shawn: 您也在窝里啊,难道我不能模仿嘛

  19. rebutton大学生乱弹琴 / 15:05@2009-01-12 19
    大学生乱弹琴

    学习了~
    节前在西安最后一条留言,呵呵。

  20. rebuttonleehow / 15:43@2009-01-12 20
    leehow

    @Shawn: 那就算是装怪...

  21. rebuttonZH CEXO / 16:55@2009-01-12 21
    ZH CEXO

    真强大的shawn,收藏起来先~

  22. rebuttonElton Disney / 17:53@2009-01-12 22
    Elton Disney

    看到题目我就不看文章了,反正我不会

  23. rebutton会律博客 / 18:58@2009-01-12 23
    会律博客

    楼上的正解,暂时是这样的,以后都会的,娃哈哈!

  24. rebutton火星基地 / 21:06@2009-01-12 24
    火星基地

    很好很好, 做个记号先, 过两天能稳定上网了装一下 :smile:

    谢谢shawn,你所做的一切都值得我们铭记在心。。。。哈哈

  25. rebuttonZoll / 22:12@2009-01-12 25
    Zoll

    曾经在awflasher那里有个将邮箱乱码然后只有用JS显示邮箱的玩意,我就用上了,更直接一点~呵呵

  26. rebuttonShawn / 1:19@2009-01-13 26
    Shawn

    @Zoll: 你说的应该是属于 urlencode 编码的方式,并不能真正阻挡垃圾邮件。因为浏览器自己就能解码,甚至搜索引擎都可以。你可以试试将那个乱码粘贴到地址栏回车,看看会出现什么。

    这里有篇文章值得看看。

  27. rebuttonhiswing / 21:30@2009-01-13 27
    hiswing

    JQuery框架是越来越火了。看来也得学习一下了。

  28. rebuttonzing / 0:07@2009-01-14 28
    zing

    哇~大师~牛X

  29. rebuttonZoll / 11:42@2009-01-14 29
    Zoll

    看来的确是这样啊。。没想到还是倒数第二多的。。
    最近已经开始收到Spam了。。看来得改改了~~呵呵

  30. rebutton痞子C / 15:47@2009-01-14 30
    痞子C

    @welee: 那说明没流量

  31. rebutton痞子C / 15:50@2009-01-14 31
    痞子C

    @Shawn: 建议肖哥,把留言这块再多做几个教程。这儿的用户体验极佳

  32. rebuttonShawn / 16:08@2009-01-14 32
    Shawn

    @痞子C: 我总结过评论方法了,还在首页上,你找找看。

  33. rebuttonC.J. / 22:25@2009-01-16 33
    C.J.

    看来JQUERY最近很流行啊~

  34. rebuttonleesum / 12:39@2009-02-04 34
    leesum

    感觉真好···

  35. rebuttonwulinfo / 16:16@2009-05-13 35
    wulinfo

    貌似这 $(".email2")应该是 $(".email")

  36. rebuttonallarem / 15:32@2009-07-07 36
    allarem

    突然发现这个可以用来做算术Anti-Spam……

  37. rebuttonLAONB / 0:50@2010-02-26 37
    LAONB

    从万戈那边看到推荐,必须过来瞧瞧,虽然我不懂jQ的原理,但是我也想尽可能多的一次调用,实现更多的特效。

  38. rebutton科士威 / 14:19@2010-03-11 38
    科士威

    不错 学习了~~呵呵

Leave Comments Here...

必填

必填&保密

随您

支持Ctrl+Enter快捷提交

  • 已部署"白忙活" Anti-Spam 系统,猪肉 Spammer 请注意查看源代码链接处。
  • 本站不会泄露您的邮件地址,敬请放心。
  • 支持常用 HTML 代码调用,插入 PHP 代码需注意:< = &lt;> = &gt;
  • 仅当某人针对您的评论做出回应时,您才会收到由本站发出的通知信件。
  • 如您希望以相同方式通知某位网友,请点击 Reply 按钮,或自行输入 @对方名字:
  • 鼠标移至评论列表中的 @someone: 区域即可自动显示 someone 的评论内容。

Shawn Blog

Shawn的个人博客(Blog),分享Wordpress技巧和Firefox浏览器心得,关注Web 2.0应用发展,记录对虚拟主机的使用评价。