Перехватить щелчок по содержимому в iframe

#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:

Вы не можете передать клик никакими законными способами, и вы столкнетесь с междоменными проблемами, если все равно попытаетесь подделать его. И я бы определенно держался подальше от всего, что выглядит как решение для взлома — оно обязательно перестанет работать (и тоже кажется злым).

Возможно, вы сможете что-то взломать, в зависимости от того, насколько точным это должно быть. Это будет включать отслеживание последовательности событий, происходящих, когда пользователь поместил мышь в область баннера, а затем покинул страницу (делая вывод, что он нажал на объявление). Вы пропустите некоторые из них, и вы также можете поймать несколько ложных срабатываний.

Это сработало бы примерно так:

  1. Оставьте покрывающий div на месте
  2. onMouseOver, скройте div и установите обработчик события onbeforeunload, который регистрирует «щелчок» через сообщение AJAX (или аналогичное)
  3. когда мышь выходит из области баннера, это означает, что они не нажимали на объявление, поэтому снова покажите div и удалите обработчик событий

Я бы предположил, что вы получите точность около 80-90%, но вам придется протестировать множество браузеров. Это также предполагает, что объявление загружается в одно и то же окно, а не в новое. Если он загрузится в новый, то, я думаю, это будет еще сложнее.