2009-08-29 4 views
2

У меня есть форма «связаться с нами», в которой используется Ajax (т. Е. Опирается на асинхронные запросы).Сокрытие электронной почты из спамботов без использования javascript

В случае, если пользователь отключил JavaScript, я хочу, чтобы отобразить сообщение, сказав что-то вроде:

Вам необходимо включить Javascript, чтобы использовать эту контактную форму. Если вы не можете или не знаете, что такое Javascript, используйте свой адрес электронной почты и свяжитесь с нами по телефону <the_email_address>.

Но, конечно, я хочу скрыть the_email_address от спам-ботов.

Поскольку этот адрес электронной почты должен отображаться внутри <noscript>, нет смысла скремблировать его с помощью Javascript, особенно учитывая тот факт, что некоторые пользователи могут просто даже не знать, что такое Javascript.

Я думал о решении, но у меня нет способа проверить это: Вставка пустых <span></span> теги, как в

my_em<span></span>[email protected]<span></span>mail.com

Или немного поумнее

my_em<span style="display:none">garbage</span>[email protected]

Будет ли это работать? Если нет, то какие-нибудь лучшие идеи?

Update

Благодаря RichieHindle для ansewr. Я думал, что поделюсь простой реализацией идеи в python:

def html_nospam(string): 
    def ent(char): 
     return "&#%d;" % ord(char) 
    return ''.join([ent(c) for c in string]) 
+1

Примечание: Будьте осторожны, с помощью этих «трюков» вы не только скрываете свое электронное письмо от ботов, но и от людей с ограниченными возможностями. – Zed

+0

@ Zed, хорошо, хотя для моего конкретного случая (читай: моя аудитория), они вряд ли будут использовать форму в любом случае, или им бы кто-то помогал им с этим или делал это для них. – hasen

ответ

4

Используйте объекты HTML, чтобы запутать его. [email protected] будет &#120;&#64;&#121;&#46;&#99;&#111;&#109;.

Вы бы подумали, что адресные комбайны были бы разумны, но многие из них не являются. Конечный результат для пользователя (независимо от того, пользуется ли он браузером или программным редактором) неотличим от обычного текста.

online tools Вы можете использовать для перевода.

+0

Awesome. Это звучит как способ сделать это. – hasen

+0

@ хасен, это - я видел это довольно часто. –

+0

sarnath'd к этому - но я думаю, что это путь, или, как предложил Шобан, вы можете попробовать Facebook - адреса электронной почты в своих профилях - это изображения. – pageman

0

Сделайте это образ. Или используйте Flash (или Silverlight, ActiveX, что угодно).

4

А как насчет изображения?

alt text http://www.codegeeks.net/wp-content/uploads/2009/08/s.png

или использовать microsoft tag :), чтобы выглядеть круто

alt text http://www.codegeeks.net/wp-content/uploads/2009/08/My_Contact_2009829838261.jpeg

Edit: Просто прочитайте свой комментарий выше относительно вашей аудитории. Похоже, что тег MS будет для них слишком большим :)

+0

+1, Используйте карандаш вместо того, чтобы изобретать ручку, которая работает в 0 гравитации. А? Неплохо. –

+0

+1, конечно! Почему я не подумал об этом? – hasen

+0

Ой, подождите, думаю. Проблема в том, что это не копирование-вставка – hasen

Смежные вопросы