четверг, 24 июля 2008 г.

Пользуем JQuery для сокрытия e-mail адреса (antispam)

Я уже писал, про замечательный JavaScript framework JQuery. Сегодня хочу поделиться небольшим трюком для сокрытия e-mail на страницах сайтов.
Допустим, у нас есть ссылка вида "mailto:name@sure.tld" Если оставить ее в таком виде, велика вероятность, что в очень скором времени этот адрес попадет в спам-листы. Ну это всем понятно; поехали дальше.
Обманываем ботов.
В <head> добавляем строку подключения JQuery, если ее там еще нет:
<script type="text/javascript" src="/js/jquery.js"></script>

Для своей задачи я использую отдельный подключаемый js-файл, в котором держу весь жабаскрипт, но вы, разумеется, можете использовать следующий код и в теле html`а:
jQuery(function($) {
$("#spfm").attr(href: "mailto:vasya@pupkin.ru");
} // да-да, режим совместимости с другими библиотеками ;-)
В данном примере "spfm" - id ссылки. То есть, защищаемая мыльно-ссылка должна иметь некий признак, по которой ее можно идентифицировать и заменить ее атрибут. Я использовал id, как наиболее простой способ. Можно так же использовать, например, класс. Ну и, разумеется, в html меняем ссылку на левую; например, nospam@tundex.ru
Казалось бы, все хорошо, в теле html светится левый адрес и по готовности DOM линк заменяется на нужный нам. Но, как истинный параноик, я подумал, что особо умные роботы могут скушать и подключаемый js и распарсить его. Про использование данного метода без отдельного js-файла вообще молчу - весь трюк теряет свой смысл... Для обоих случаев, хоть с внутренним js-кодом, хоть с подключаемым файлом, усовершенствуем немного наш антиспам. Разобъем реальное мыло на составляющие, а перед заменой, будем собирать его обратно:
jQuery(function($) {
var zupamail = ["ilto:vasya@", "ma", "pup", "kin.ru"];
$("#spfm").attr({href: zupamail[1]+zupamail[0]+zupamail[2]+zupamail[3]});
} // да-да, режим совместимости с другими библиотеками ;-)

Насколько мне известно, боты пока не умеют жабаскриптить :) и наш мыл останется для них недосягаем.

Комментариев нет: