Подглядывающие ссылки
Ниже приведена таблица со ссылками на некоторые популярные страницы Рунета. Так же скрипт, установленный на данной странице, пытается определить, посещал ли пользователь одну из указанных страниц в недалеком прошлом или нет. Техника, используемая данным скриптом не опирается на поле «referrer». Таким образом посещение пользователем той или иной страницы будет фиксироваться даже если пользователь пришел на эту страницу не с одной из перечисленных страниц.
| Проверяемый URL | Результат проверки |
|---|---|
| yandex.ru | Посещений не обнаружено |
| www.rambler.ru | Посещений не обнаружено |
| google.ru | Посещений не обнаружено |
| google.com | Посещений не обнаружено |
Как это реализовано
Скрипт, определяющий посещал ли пользователь данные страницы или нет, базируется на простой идеи: ссылки на такие страницы могут иметь цвет, отличный от цвета по умолчанию. Достаточно проверить текущий цвет ссылки и сразу станет ясен ее статус. Данная техника работает в IE и Mozilla. К сожалению Opera не поддерживает определение текущих значений css-свойств.
И так. Вначале определим стили для ссылок: псевдоклассы hover, link и visited. Для того что бы hover не сказывался на цвете – опишем его первым. В данном случае проблема, на которую наступаю многие начинающие web-мастера нам поможет.
a.url-test:hover {color:#FF0000;}
a.url-test:visited {color:#00FF00;}
a.url-test:link: {color:#0000FF;}
Далее на странице размещена таблица в которой расположены эти ссылки. Для каждой ссылки указан свой «id» для того, что бы скрипт мог обратиться к каждой ссылке. Так же в таблице (во второй колонке) для ячеек определены «id» для того что бы можно было занести результат проверки:
<tr> <td><a class='url-test' id='urlYndex' href='http://yandex.ru'>yandex.ru</a></td> <td id='txtYndex'></td> </tr> <tr> <td><a class='url-test' id='urlRambler' href='http://rambler.ru'>yandex.ru</a></td> <td id='txtRambler'></td> </tr>
Теперь приведем ту часть скрипта, которая непосредственно ответственна за определение. Как видно функция testURL получает два параметра: идентификатор ссылки и идентификатор ячейки для записи результата проверки. Используя объект currentStyle, скрипт проверяет цвет у ссылки и записывет результат:
function testURL(url,txt)
{
if (document.getElementById(url).currentStyle.color == '#00FF00')
document.getElementById(url).innerText = 'Обнаружено посещение';
else
document.getElementById(url).innerText = 'Нет посещений';
} 