|
|
|
| Может кто поможет :)
Возникла потребность сделать следущее.
Есть список рекламных ссылок, и блок с информацией.
Нужно что бы блок с информацией открывался только после того как была нажата рекламная ссылка. Рекламеные ссылки выдаються через джава скрипт. | |
|
|
|
|
|
|
|
для: TanTaL91
(06.04.2009 в 10:53)
| | Заработать хочется, да? Причём совершенно "на халяву", да? :-)
Сомнительно, чтобы у вас имелась ТАКАЯ информация на странице, за ради которой юзер "полезет" нажимать на рекламу...
Рекламные скрипты сейчас (раньше было иначе) в основном формируют на вашей странице <IFRAME>, внутрь которого загружают собственную страницу - т.е. ЧУЖУЮ по отношению к вашему домену. Соответственно, отследить какие-либо действия юзера на ЧУЖОЙ странице вы не сможете.
Т.е. можно, конечно, написать на странице "Кликнешь на любую рекламную ссылку - покажу голую Собчак, а кликнешь на две ссылки - покажу Собчак вместе с Тимоти в процессе!!!".
И можно скриптом определить - "завёл" ли юзер мышку на рекламный блок и сколько времени курсор его мыши там находился.
Но что именно он там фактически сделал (или не сделал) за это время - вы узнать не сможете.
Приблизительно ТАК устроены программы, обрабатывающие скачку файлов с бесплатных файлохранилищ - появляется надпись "Ссылка для скачивания будет доступна через 30 секунд" и начинается обратный отсчёт. Предполагается, что юзеру будет скучно ждать полминуты и он куда-то кликнет... А если он тупо ждал (или вовсе уходил на другое окно/вкладку), то тогда такому юзеру или выбрасывают "битую" ссылку на скачивание или же отчёт начинают заново (но уже 60 секунд, или 5 минут)... | |
|
|
|
|
|
|
|
для: PAT
(06.04.2009 в 13:02)
| | Интересно :) | |
|
|
|
|
|
|
|
для: Doorgen
(06.04.2009 в 15:24)
| | Я видел на 1 сайте такую штуку. Стоит блок ссылокчу если кликаешь по блоку но не нажимается рекламная ссылка то ничего не происходит, если открываешь ссылку в фоновом окне тоже блок не активизируется, а активизируется только при нажатии на ссылку и переходе туда, переходит в новом окне человек просто переключает сайт на сайт с которого он перешел, а там уже появился блок с ссылкой. Вот такая вот система.
Не не надо что бы юзер ждал не в коем случае...
Такое моно? | |
|
|
|
|
|
|
|
для: Doorgen
(06.04.2009 в 15:26)
| | да, если вы выводи ссылки своим скриптом, а не сторонним | |
|
|
|
|
|
|
|
для: Doorgen
(06.04.2009 в 15:26)
| | Раньше такое было возможно - когда рекламный скрипт внедрял свои коды прямо на страницу (а не в ифрейм). Или же если хозяин сайта сам является рекламодателем.
Если рекламная ссылка сформирована скриптом прямо на странице, то она входит в коллекцию document.links и доступна вашему скрипту на странице. На эту рекламную ссылку можно "повесить" любую инструкцию и отследить ВСЕ действия пользователя.
Но сейчас и гуглевский AddSense, и яндексовский Бегун, да и все прочие РЕАЛЬНО ПЛАТЯЩИЕ ДЕНЬГИ за клики партнёрки контекстной рекламы формируют ифреймы и грузят в него СВОИ страницы (ЧУЖИЕ для вашего скрипта).
Ещё раз пишу - отследить, что клиент "завёл" мышь в рекламный ифрейм и что после этого СРАЗУ (покуда он не "вышел" мышью из рекламного ифрейма), произошла потеря фокуса окном - вполне МОЖНО.
Как именно это реализовать?
Я уже практически ВСЁ рассказал:
1. после загрузки страницы определяете координаты ифрейма (подсказываю, что имя у него ЕСТЬ)
2. отслеживаете движение мыши по странице (onmousemove)
3. как только движение мыши прекратилось (РЯДОМ с одной из границ ифрейма, точно определить никогда не сможете, но зато можете определить направление движения) - ждёте события потери окном фокуса (onblur). Правда, надо ещё проверить, а не нажмёт ли клиент Alt-Tab
4. если клиент "зашел" мышью в ифрейм, ничего не нажимал на клаве, и если движение мыши по странице не возобновилось (начиная с какой-то границы ифрейма), а окно потеряло фокус, значит - УРА!? - клиент куда-то ткнул и вы заработали копеечку!?.
5. но УРА это именно с вопросом, потому как клиент может ткнуть не по ссылке, а РЯДОМ с ней, просто по телу документа в ифрейме. Значит, надо какое-то время ПОДОЖДАТЬ - а не "выйдет" ли клиент мышью из ифрейма через одну из его границ (потому как возвращаясь из другой вкладки, он должен будет мышью "побегать" по эрану...)
Всё поняли? :-)
"Покрутите" этот код, надеюсь, понимание проблемы придёт (сделан на скорую руку ТОЛЬКО для MSIE). Учтите, что нас интересуют "рекламные ссылки", которые открываются в новом окне:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=win-1251">
<script>
function mFunc ()
{
with (document.getElementsByName ('IFR') [0])
{
attachEvent ('onfocus', function () {document.getElementById ('test3').innerText = 'в фокусе'});
attachEvent ('onblur', function () {document.getElementById ('test3').innerText = 'фокус потерян'});
}
}
</script>
</head>
<body onload="mFunc (); focus ()" style="margin: 80px"
onfocus="document.getElementById ('test2').innerText = 'в фокусе'"
onblur="document.getElementById ('test2').innerText = 'фокус потерян'"
onmousemove="document.getElementById ('test1').innerText = event.clientX + ', ' + event.clientY">
<br><br>
<script title="ЧУЖОЙ">document.write ('<iframe name="IFR" src="http://google.com"></iframe>')</script>
<br><br><hr>
Мышь: <span id="test1"></span>
<br><br><hr>
Ваш документ: <span id="test2"></span>
<br><br><hr>
Ифрейм: <span id="test3"></span>
<br><br><hr>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: TanTaL91
(06.04.2009 в 10:53)
| | Почти в любом js-фреймворке есть такие модули. Покури jQuery или Prototype, если нужно сделать реально красиво. Ну а если тупо и как обычно - то что мешает дописывать элементу в style display:none; а когда кликнет - display:block ?
element.style = "display:block;"; | |
|
|
|
|
|
|
|
для: Potaevsky
(06.04.2009 в 15:35)
| | Вы вообще о чём тут?
Что сами курите?
Постарайтесь ВЪЕХАТЬ в тему, а не сразу писать здесь никому не нужные банальности и давать БЕСПОЛЕЗНЫЕ советы и пожелания "тоже чего-нить покурить"
Скрыть блок и потом (по какому-то событию) его показать - задача тривиальная.
Весь вопрос в том - КОГДА ИМЕННО этот блок показывать? По КАКОМУ событию?
Клик по рекламной сылке происходит в <IFRAME>, т.е. в ЧУЖОМ документе. Ни одно из событий, произошедших в ЧУЖОМ документе в <IFRAME>, не может стать известно скрипту в основном (СВОЁМ) документе. | |
|
|
|
|
|
|
|
для: PAT
(06.04.2009 в 16:49)
| | PAT вы даже не представляете как я вам благодарен за то что вы помогаете.
iframe это хорошо, но у меня рекламодетель выдает именно старым методом, без фреймов :)
Как сделать что бы было без фреймов и отслеживало именно клик :) Просто выше вы описали что если стары методом то можно отследить.
Заранее вам очень признателен. | |
|
|
|
|
|
|
|
для: TanTaL91
(06.04.2009 в 21:12)
| | Я тут пару подобных примеров нашел вот разобрать надо будет. Попробую сам если не получиться напишу. | |
|
|
|
|
|
|
|
для: TanTaL91
(06.04.2009 в 21:12)
| | Если ссылки внедряются в сам документ, то всё ОЧЕНЬ просто.
Вешаете на тег <body> обработчик onload, по которому запускаете функцию.
Которая:
1. создаст глобальную переменную-счётчик кликов рекламным ссылкам;
2. на все рекламные ссылки "повесит" обработчик события onclick, который при клике по любой ссылке будет увеличивать показания счётчика;
3. по достижении заданного числа кликов по рекламным ссылкам какой-либо скрытый блок откроется ( или загрузится AJAX'ом недоступная ранее информация).
Приблизительно так:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=win-1251">
<script>
var QW = 2; //нужное вам количество кликов по РАЗНЫМ рекламным ссылкам
function mFunc_0 ()
{
for (var obj = document.links, j = 0; j < obj.length; j++)
if (obj [j].className.substring (0, 2) != 'ss') mFunc_1 (obj [j]);
}
function mFunc_1 (tg)
{
if (document.addEventListener) tg.addEventListener ('click', mFunc_2, false);
else if (document.attachEvent) tg.attachEvent ('onclick', mFunc_2, false);
else tg ['onclick'] = mFunc_2;
}
function mFunc_2 (e)
{
var evt = e || window.event, obj = evt.target || evt.srcElement;
if (document.removeEventListener) obj.removeEventListener ('click', mFunc_2, false);
else if (document.detachEvent) obj.detachEvent ('onclick', mFunc_2, false);
else target ['on' + type] = null;
if (!--QW) document.getElementById ('hid_dv').style.display = 'block';
}
</script>
</head>
<body onload="mFunc_0 ()">
<!-- Всем СВОИМ ссылкам присваиваете какой-то класс, -->
<!-- который можно и не описывать в CSS. -->
<!-- Главное, чтобы у этих имён классов был ОБЩИЙ ПРИЗНАК. -->
<!-- Например, здесь классы всех СВОИХ ссылок начинаются с символов ss. -->
...<br><a href="URL-1" target="_blank" class="ss_uy">ВАША ссылка</a><br>
...<br><a href="URL-2" class="ss01" target="_blank">ВАША ссылка</a><br>
<!-- Ваши ссылки могут открываться и в том же окне -->
<!-- Но здесь для тестирования все они открываются в новом окне -->
<h1 align="center">Кликнешь по двум РАЗНЫМ рекламным ссылкам, получишь большую сладкую конфету!
<h3 align="center">(А иначе - ни хрена не получишь!)</h3></h1>
<script title="ЧУЖОЙ">
document.write ('<a href="http://google.com/" target="_blank">Рекламная ссылка 1</a><br>');
document.write ('<a href="http://yandex.ru/" target="_blank">Рекламная ссылка 2</a><br>');
//...
document.write ('<a href="#" onclick="window.open (\'http://yahoo.com/\', \'\'); return false">Рекламная ссылка 3</a><br>');
</script>
...<br><a href="URL-3" class="ssqq" target="_blank">ВАША ссылка</a><br>
...<br><a href="URL-4" target="_blank" class="ss06qwerty">ВАША ссылка</a><br>
...<br><a href="URL-5" class="ss44" target="_blank">ВАША ссылка</a><br>
...<br><a href="URL-100" target="_blank" class="ssAw">ВАША ссылка</a><br>
<div id="hid_dv" style="display: none; padding: 20px; background: lime">
Скрытая информация (или сюда будет подгружаться с сервера то, что обещано юзеру)</div>
...
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: PAT
(07.04.2009 в 00:03)
| | Слов нету. ОГРОМНОЕ ПАСИБА!!! | |
|
|
|