Noxt.net → Тех. заметки → Прячем e-mail от спам-ботов с помощью JavaScript
Среди прочих методов борьбы со e-mail-спамом в качестве профилактических мер часто используется скрытие адресов от спам-ботов, собирающих по сайтам базы.
Можно писать адрес на картинке, но тогда пользователю придётся перенабирать его вручную, а если у вас e-mail длинный и сложный, он может ошибиться. Можно «шифровать» его (например, заменять @ на (at), -sobaka- и т.п.), но многие боты обходят такие методы. И, наконец, третий способ, о котором и пойдёт речь — маскировка с помощью JavaScript.
Для начала нужно создать файл скрипта (например, mail.js) в нужной директории (например, scripts/). Теперь, когда вам нужно будет писать ссылку на e-mail, включайте этот скрипт в страницу.
В файле mail.js пишем следующий код:
Мы разбили адрес на два куска, ни один из которых не включает символ @, а потом вывели их.
Для использования этого скрипта в нужных местах просто пишите его вызов:
Так вы довольно серьёзно защитите свой адрес. Можно придумать и более сложные алгоритмы, при которых ни один символ в массиве не будет совпадать с соответствующим символом в адресе.
Данный метод позволяет замаскировать адрес для непрошенных гостей и сохранить удобство для посетителей — им будет видна полноценная ссылка.
Универсальный скрипт для вывода чужих адресов
Если на сайте вы публикуете не только свой e-mail, но и другие, неразумно для каждого из них создавать отдельный скрипт. Поэтому напишем один универсальный. В нём будет функция, которой мы будем передавать два параметра — name и domain, а она будет выводить нормальную ссылку.
Допустим, скрипт будет иметь имя mail2.js и будет лежать в той же папке scripts/. Вот его код:
Чтобы использовать этот скрипт, включайте его на нужных страницах. Для этого пишите следующее (желательно между тегами <head> и </head>):
Предположим, что мы хотим опубликовать e-mail мистера Someone (someone@something.com). Пишем:
А выглядеть это будет так:
Mr. Someone, e-mail.
Можно сделать алгоритм ещё более сложным, главное — не переборщить :)
Здесь мы включили лишние символы @ и ., которые впоследствии убираются с помощью регулярных выражений. Такими символами можно запутать адрес так, что сами потом не разберётесь :) В переменной domain настоящая точка заменена символом !.
Этот же способ легко адаптируется и под второй случай:
Теперь, соответственно, для публикации адреса мистера Someone мы должны писать примерно такой код:
Стоит отметить, что описанные методы — не панацея, и часто спамеры добираются даже до тех адресов, которые вообще нигде не публиковались. Тем не менее, на всякий случай можно его применять.
купить потолочные светильники • Работа Фотографам и Иллюстраторам - свадебное агентство . • Мы 10 лет на рынке мебели: кресла для посетителей . Кресло кресла! Распродажа.
