2012-08-31 106 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

相關問題