#javascript #php #html #jquery #css
Вопрос:
У меня есть iframe
ссылка на внешний URL-адрес, который обслуживает страницы, содержащие флеш-рекламу.
Мне нужно отследить, как часто клиент нажимает на одно из этих объявлений.
Подход, который я использую, заключается в том, чтобы отобразить div
элемент поверх iframe
. Это позволяет мне перехватить событие щелчка, однако мне нужно передать этот щелчок вниз iframe
. Возможно ли это с помощью JavaScript?
Комментарии:
1. Умная идея. Но передать их, вероятно, будет невозможно.
2. Как вы перехватываете щелчок с помощью элемента div? Мои клики не перехватываются.
Ответ №1:
Нет, это невозможно. Вы не можете имитировать реальный щелчок в javascript, вы можете запускать только события щелчка.
Комментарии:
1. И даже если бы можно было, это не сработало бы из-за междоменной политики.
2. Есть ли способ перехватить событие/запрос перенаправления? в случае, если iframe перенаправляет на другую страницу, есть ли способ прослушать это?
Ответ №2:
Я не думаю, что это также возможно
Но, предполагая, что клики перенаправляют пользователя на сайт объявления, вы можете перехватить клик пользователя с помощью перенаправления. Измените ссылку на какой-нибудь скрипт на вашем собственном сервере с помощью уникального идентификатора объявления. Зарегистрируйте клик и перенаправьте пользователя на страницу рекламы.
Другая возможность-использовать этот метод для загрузки содержимого iframe, чтобы вы знали, сколько клиентов просмотрели рекламу. Но это, конечно, может быть рекламная схема, которая не нравится/не нужна вашему рекламному клиенту.
Комментарии:
1. Я знаю, что прошло некоторое время, но как можно перехватить перенаправление без использования события click (поскольку это не будет работать с iframe и внешним доменом)?
2. Допустим, рекламный клик переходит на URL_AD, вы заменяете его, чтобы перейти на URL_ME вашего скрипта/сервера, а затем используете перенаправление на URL_AD из скрипта. Вы получаете щелчок->URL_ME (щелчок для регистрации) ->> URL_AD. Возможно, это не идеально, но, по крайней мере, вы сможете зарегистрироваться, нажав на объявления
Ответ №3:
Вы не можете передать клик никакими законными способами, и вы столкнетесь с междоменными проблемами, если все равно попытаетесь подделать его. И я бы определенно держался подальше от всего, что выглядит как решение для взлома — оно обязательно перестанет работать (и тоже кажется злым).
Возможно, вы сможете что-то взломать, в зависимости от того, насколько точным это должно быть. Это будет включать отслеживание последовательности событий, происходящих, когда пользователь поместил мышь в область баннера, а затем покинул страницу (делая вывод, что он нажал на объявление). Вы пропустите некоторые из них, и вы также можете поймать несколько ложных срабатываний.
Это сработало бы примерно так:
- Оставьте покрывающий div на месте
- onMouseOver, скройте div и установите обработчик события onbeforeunload, который регистрирует «щелчок» через сообщение AJAX (или аналогичное)
- когда мышь выходит из области баннера, это означает, что они не нажимали на объявление, поэтому снова покажите div и удалите обработчик событий
Я бы предположил, что вы получите точность около 80-90%, но вам придется протестировать множество браузеров. Это также предполагает, что объявление загружается в одно и то же окно, а не в новое. Если он загрузится в новый, то, я думаю, это будет еще сложнее.