Вызов стороннего сценария по клику юзера

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Holger Dee Assuran, 5 фев 2008.

  1. Holger Dee Assuran

    Holger Dee Assuran Гость

    Делаю баннерокрутилку. Нужно считать клики по баннерам. Баннеры выводятся двумя способами:
    Для обычной картинки (gif, jpg, png):
    Код (Text):
    <div id="$ban_position">
    <a href='$address' target='banner_target'><img src='/interface/banners/$noswf' /></a></div>
    и для flash-баннера:
    Код (Text):
    <div id="$ban_position">У вас не установлен или отключен Flash-player</div>
    <script type="text/javascript">
    var so = new SWFObject("/interface/banners/$filename", "$descript", "$width", "$height", "7", "#000000");
    so.write("$ban_position");
    </script>
    Я думаю сделать это так - при клике в пределах <div id="$ban_position">...</div> срабатывает событие onclick, обращающееся к php-сценарию, принимающему указатель баннера (можно через GET) и изменяющему значение счетчика его кликов. В идеале пользователь кликнул по баннеру и ему открылось окно с сайтом - работа сценария учета кликов ему не видна.
    Отсюда вопрос - как это реализовать? Что нужно написать в onclick чтобы добиться такого поведения?
     
  2. Holger Dee Assuran

    Holger Dee Assuran Гость

    Хотя, конечно, есть другой путь - можно в качестве ссылки для баннера-картинки использовать адрес сценария учета кликов с последующим редиректом, но тут я затрудняюсь по поводу Flash - ведь ссылка на ресурс в сети внутри файла и при клике на таком баннере пользователь будет сразу уходить на целевой сайт не оставляя данных о клике.
     
  3. p-k

    p-k Гость

    ну есть такой вариант: в див вставляешь форму, которая отправляет сценарию в невидимом фрейме нужные тебе данные

    <DIV ID='$ban_position' ONCLICK='document.траляля.submit();'>
    ...
    <FORM NAME='траляля' ACTION='сценарий_во_фрейме.пхп' METHOD='POST' TARGET='фрейм'>
    <INPUT TYPE='HIDDEN' NAME='бугага' VALUE='$счетчик++'>
    <INPUT TYPE='HIDDEN' NAME='сессия' VALUE='$пхп_сессия'>
    </FORM>
    ...
    </DIV>

    сессия отправляется для защиты от накрутки кликов.

    при кликаньи по диву должно срабатывать 2 события: переход по ссылке и отправка формы из ONCLICK








    ну есть ещё вариант событие onclick вставить в HREF ссылки, но тогда страницу нужно будет открывать яваскриптом, что некруто. так что верхний вариант думаю сойдёт
     
  4. Holger Dee Assuran

    Holger Dee Assuran Гость

    А как сработает такая форма если внутри дива стоит flash-объект и клик происходит по этому объекту? Потому что лично для меня стало проблемой именно то, что событие для дива не происходит если клик осуществлен по flash-объекту внутри этого дива.
     
  5. Holger Dee Assuran

    Holger Dee Assuran Гость

    Мда... Несколько более подробно опишу проблему.
     
  6. Holger Dee Assuran

    Holger Dee Assuran Гость

    Ой... Случайно отправил... Итак...
    Баннеры на страницу выводятся двумя способами - их я уже приводил.
    Объект SWFObject() предоставлен библиотекой swfobject.js (SWFObject v1.5.1: Flash Player detection and embed - http://blog.deconcept.com/swfobject/)
    Метод so.write() принадлежит объекту SWFObject() и заменяет содержимое <div name='$ban_position'>...</div> на код вывода swf-объекта. Это сделано для того чтобы юзеры IE переходили по ссылке в swf-файле по первому клику (обходим особенность IE - первым кликом выделяем объект - последующими с ним работаем).

    Вариант с формой не пошел - так сценарий не срабатывает и в случае с swf и в случае с gif
    Я на данный момент использую такой метод
    Код (Text):
    <div class="$ban_position" onclick="document.location='/bannerclick.php';">...</div>
    но, как я уже говорил, в случае с gif все нормально, а вот с swf - не работает.
     
  7. p-k

    p-k Гость

    значит нужно убрать во флеш-баннере функцию перехода по ссылке и вставить эту функцию твоему скрипту. или можно еще поискать сайты которые используют что-то похожее. на сайтах с музыкой полно таких надоедливых флеш-баннеров, посмотри как сделано у них. потому что иначе я незнаю как еще - ведь устройство апплета-то какое: создается область на экране которая полностью принадлежит флеш ролику или ява-программе. их действия и имеют больший приоритет. и при редиректе скрипт просто не успеет сработать
     
  8. Vovochka

    Vovochka Гость

    <!--QuoteBegin-sax_ol+12:02:2008, 01:01 -->
    <span class="vbquote">(sax_ol @ 12:02:2008, 01:01 )</span><!--QuoteEBegin-->Управление скрипту просто не перейдет, я так думаю!
    [snapback]97565" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    +1
     
Загрузка...
Похожие Темы - Вызов стороннего сценария
  1. k85
    Ответов:
    0
    Просмотров:
    360
  2. alexas1
    Ответов:
    0
    Просмотров:
    506
  3. Sanchezz86
    Ответов:
    1
    Просмотров:
    588
  4. vln1981
    Ответов:
    0
    Просмотров:
    708
  5. JohnLemon
    Ответов:
    3
    Просмотров:
    870

Поделиться этой страницей