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

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

  1. Holger Dee Assuran

    Holger Dee Assuran Гость

    Репутация:
    0
    Делаю баннерокрутилку. Нужно считать клики по баннерам. Баннеры выводятся двумя способами:
    Для обычной картинки (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 Гость

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

    p-k Гость

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

    <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 Гость

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

    Holger Dee Assuran Гость

    Репутация:
    0
    Мда... Несколько более подробно опишу проблему.
     
  6. Holger Dee Assuran

    Holger Dee Assuran Гость

    Репутация:
    0
    Ой... Случайно отправил... Итак...
    Баннеры на страницу выводятся двумя способами - их я уже приводил.
    Объект 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 Гость

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

    Vovochka Гость

    Репутация:
    0
    <!--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
    Просмотров:
    446
  2. alexas1
    Ответов:
    0
    Просмотров:
    627
  3. Sanchezz86
    Ответов:
    1
    Просмотров:
    747
  4. vln1981
    Ответов:
    0
    Просмотров:
    1.119
  5. JohnLemon
    Ответов:
    3
    Просмотров:
    1.423

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