Читаем дальше...
Пару дней назад возникла задача - реализовать так называемые "информеры". Принцип тот же что и у счетчиков. Клиент приходит на сайт, выбирает нужные настройки информера, копирует код и вставляет его в свой блог/сайт. Счетчик считает количество заходов на сайт, а информер показывает некую информацию.
В задачу так же входила реализация обратного линка на сайт. То есть код для вставки должен был выглядеть приблизительно следующим образом:
<!-- 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 использовать.
ОтветитьУдалить