четверг, 11 декабря 2008 г.

Как скрыть счетчик посещений

Есть сайт. На него надо установить счетчики посещение (например Rambler Top100 или Рейтинг@Mail.ru) так, чтобы на страницах сайт их не было видно, но посещения он исправно считал.

Начнем с Rambler Top100. Изначально Rambler предлагает разместить на страницах сайта две картинки с помощью следующего html-кода:

<!-- begin of Top100 code -->
<script id="top100Counter" type="text/javascript" src="http://counter.rambler.ru/top100.jcn?XXXXXXX"></script><noscript><img src="http://counter.rambler.ru/top100.cnt?XXXXXXX" alt="" width="1" height="1" border="0"></noscript>
<!-- end of Top100 code -->

<!-- begin of Top100 logo -->
<a href="http://top100.rambler.ru/top100/"><img src="http://top100-images.rambler.ru/top100/banner-88x31-rambler-gray2.gif" alt="Rambler's Top100" width="88" height="31" border="0" /></a>
<!-- end of Top100 logo -->

Первая картинка - это собственно счетчик посещений (XXXXXXX - номер счетчика), вторая картинка - это логотип рейтинга.

Очевидное решение с style="display: none" не совсем подходит, потому что в Opera и Safari скрытые таким образом картинки грузить не будут. Кстати я уже писал про эту особенность Opera на своем Главном сайте.

Вместо вставки картинки в html-код страницы будет грузить ее с помощью JavaScript:

Rambler1 = new Image();
Rambler1.src = 'http://counter.rambler.ru/top100.scn?XXXXXXX&rn=' + Math.random() + '&rf=' + escape(document.referrer);

Серверу всё равно как картинка будет с него скачена. Факт посещения страницы он считает по факты отгрузки картинки-счетчика.

Теперь о счетчики от Рейтинга@Mail.ru. Огромный и запутаный код счетчика опущу - большая часть этого кода для поддержки устаревших браузеров с ранними и сейчас малораспространенными версиями JavaScript. Абсолютное большинство пользвателей на момент написания поста имели JavaScript 1.3. От этого и будем плясать. По аналогии с Rambler Top100 получаем следующий код:

d = document;
a = ';r='+escape(d.referrer);
js = 13;

Mail = new Image ();
Mail.src = 'http://d8.c9.b7.a1.top.mail.ru/counter' + '?id=XXXXXXX;t=TT;js=' + js + a + ';rand=' + Math.random();

где, XXXXXXX - ID ресурса, ТТ - тип счетчика (в данном случаи без разницы какой).

Если скрытый таким образом счетчик Рейтинга@Mail.ru сразу считать не начнет - не пугайтесь - у них бывает. Подождите день-два - всё заработает.

Для Rambler Top100 и Рейтинга@Mail.ru приведенный метод полностью решает проблему сокрытия счетчика. Единственный минус такого решения в том, что если у пользователя отключен JavaScript, то счетчик считать не будет. Впрочем таких пользователей мало.

P. S. Разумеется подобные методы скрытия счетчиков объявлены рейтингами вне закона. Так что могут и наказать. Если конечно у них есть специальные люди, которые следят за видимостью счетчиков на все сайтах, для которых рейтинг считается.

P. S. S. И вообще можно не парится, а поставить Google Analytics...

См. также:

Как еще можно скрыть счетчики
http://htmlcoder.visions.ru/CSS/?24

Главный сайт
http://www.belonogov.ru

Google Analytics
http://www.google.com/analytics/

3 комментария:

  1. Поставь все счетчики в блок с абсолютным позиционированием и координатами -100,-100 и дело в шляпе.
    <div style="position:absolute;top:-100px;left:-100px"><!-- здесь код счетчиков--></div>

    ОтветитьУдалить
  2. Можно конечно и так. В принципе в посте есть ссылка - там разные способы описаны. В том числе и аналогичный.

    ОтветитьУдалить
  3. Я счетчики скрывал наложением на них div-а с z-index: 1, как бы "заслоняя" их. А потом стал скрывать, как описал Maxim.

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.