Читаем дальше...
Пару дней назад возникла задача - реализовать так называемые "информеры". Принцип тот же что и у счетчиков. Клиент приходит на сайт, выбирает нужные настройки информера, копирует код и вставляет его в свой блог/сайт. Счетчик считает количество заходов на сайт, а информер показывает некую информацию.
В задачу так же входила реализация обратного линка на сайт. То есть код для вставки должен был выглядеть приблизительно следующим образом:
<!-- informer START --> <a id="link_to_my_site" href="http://bla.bla.bla/?mod=informers¶m=1"> <iframe id="informer_iframe" width="250px" height="200px" src="href="http://bla.bla.bla/?mod=informers¶m=1"> </iframe> </a> <!-- informer END -->iframe использовался потому, что необходимо было вставить страничку, которая рисует график на стороне клиента.
Но клиент может удалить ссылку и ничего ему не будет.
<!-- informer START --> <iframe id="informer_iframe" width="250px" height="200px" src="href="http://bla.bla.bla/?mod=informers¶m=1"></iframe> <!-- informer END -->Может, если мы не сделаем в скрипте построения графика такую штуку
buildChart = function(containerId) { var tagA = window.parent.document.getElementById("link_to_my_site"); if (!tagA || (tagA.href.indexOf('http://bla.bla.bla/') != 0)) return; // тут строится график } buildChart('main');С помощью строчки
window.parent.document.getElementById("link_to_my_site")мы получаем наш тег А, содержащий линк на наш сайт. Если его там нет, или линк не тот мы просто выходим из функции которая строит информер.
Есть и другие варианты. К примеру, один поисковик предлагает вставить такой текст.
<!-- begin of code --> <script id="BlaBlaCounter" src="http://bla.bla.bla/calc.jcn?1233456" type="text/javascript"></script> <noscript> <img border="0" alt="Bla Bla Bla Calculator" width="81" src="http://bla.bla.bl/calc.cnt?1233456" height="63"/> </noscript> <!-- end of code -->В подходящий момент вызывается скрипт, который делает вот что
<!-- begin of code --> <script type="text/javascript" id="BlaBlaCounter" src="http://bla.bla.bla/calc.jcn?1233456"> with (c_image = new Image()){ src = 'http://bla.bla.bla/calc.scn?1233456'; border = 0; alt = 'Bla Bla Bla Calculator'; width = 81; height = 63 } with (c_link = document.createElement('a')) { href='http://bla.bla.bla/home?1233456'; target='_blank'; appendChild(c_image); } document.getElementById("BlaBlaCounter").parentNode.appendChild(c_link); </script> <a href="http://bla.bla.bla/home?1952968" target="_blank"> <img height="63" border="0" width="81" src="http://bla.bla.bla/calc.scn?1233456" alt="Bla Bla Bla Calculator"> </a> <noscript> <img border="0" alt="Bla Bla Bla Calculator" width="81" src="http://bla.bla.bla/calc.cnt?1233456" height="63"/> </noscript> <!-- end of code -->а именно в контейнер, содержащий скрипт подклеивает линк со вложенным в него рисунком (что ниже по тексту можно наблюдать).
В ответ на эту самовольность можно написать свой скрипт, который вслед за добавлением линков разработчиками счетчика/информера, аккуратно их поудаляет. Только если где-то в глубине скрипта не будет зарыта проверочка ;)
Спасибо за идею! Хотелось и ссылочку сохранить и iframe использовать.
ОтветитьУдалить