2012-08-31 111 views
0

如果我设置display: none,是否可以防止垃圾邮件遍历我的电子邮件地址?如果你愿意,我有一个小迷你游戏的想法,用户点击电子邮件链接,然后显示一个或两个“你确定你不是机器人”的问题。一旦这些被回答,它就会显示出真正的联系。通过隐藏电子邮件地址来防止垃圾邮件(显示:无)

问题是我假设机器人可以看到链接,因为它明显存在于HTML中,即使它不可见。有没有解决的办法?

此外,我想这些问题淡入,但据我所知,CSS3转换不支持显示或可见性属性。我将不得不诉诸于jQuery?如果是这样,当从display: none切换到display: block时,是否有人能指示我选择淡入淡出元素?

+0

隐藏您的电子邮件地址的最佳方式是使用服务器端代码,并让用户填写表单。当然,更聪明的垃圾邮件也可以填写评论表单。 – Blazemonger

回答

0

不,display: none不起作用。

解决这个问题的唯一方法是不要将它放在HTML中。例如,将其作为图像,或者使用JavaScript将其解码为单独的元素,这些元素可以绝对地(并且单独)放置,以供浏览器的人类观察者正确地看到。

请注意,如果您转到图像路径,垃圾邮件当然可以读取图像,所以也许您应该使用一些随机图像(如旧的验证码)进行一点混淆。

关于不支持visibility/display的CSS3,您会说得对,但是您可以使用不透明属性来淡化您决定显示电子邮件地址的内容。 opacity完全由CSS3转换支持。

0

大多数爬虫分析页面的标记,而不是视觉渲染的版本。使用display: none将产生非常小的影响。

此外,你不需要使用jQuery淡化效果。设置不透明度,然后用下面将很好地工作:

-webkit-transition: opacity 0.2s linear; 
     transition: opacity 0.2s linear; 
+0

我知道不透明度过渡,但是这种情况下,假设元素实际上不在文档中,而不是仅仅是不可见的。 – Bobe

+1

你知道,当一个元素的CSS属性为'display:none'时,它仍然在文档中,不是吗? – BenM

+0

@Bobe'display:none'不会从文档中删除元素,只会删除视觉元素。 (哎呀@BenM也打我+1) –

0

而不是显示的e-mail地址,您可能想实现一个接触的形式。您可以使用验证码或一些蜜罐方法来保护该表单。此外,你可以使用JavaScript呈现表单,因为很多机器人不会运行Javascript(我希望)。

+0

是的,我知道我可以使用表单,但我想用其他方法进行实验。 – Bobe

+0

您也可以在javascript中混淆电子邮件地址。如果你使用Javascript来添加它,或者甚至是AJAX请求的结果,那么僵尸程序将很难获得电子邮件地址。 – GolezTrol

相关问题