2014-11-27 2 views
0

Я занимаюсь некоторыми исследованиями в области удобства использования CAPTCHA, и сейчас я просматриваю reCAPTCHA от Google.Найти, когда reCAPTCHA перезагружается

Я пытаюсь подсчитать, сколько раз пользователь перезагружает CAPTCHA, потому что он не может его решить, но я не могу найти способ получить эту информацию. В принципе, каждый раз, когда пользователь запрашивает новую CAPTCHA, я бы хотел увеличить счетчик. Я использую JS/PHP.

Спасибо.

ответ

1

HTML, впрыскивается в ReCaptcha в PHP содержит следующий HTML для кнопки перезагрузки:

<a title="Get a new challenge" id="recaptcha_reload_btn"><img alt="Get a new challenge" src="http://www.google.com/recaptcha/api/img/red/refresh.gif" id="recaptcha_reload" height="17" width="25"></a> 

Это означает, что вы можете добавить прослушиватель событий Javascript на кнопку и сосчитать, сколько раз он щелчок. В этом примере используется JQuery для увеличения глобальной переменной:

var recaptcha_reloaded = 0; 
$(document).on("click", "#recaptcha_reload_btn", function() { 
    recaptcha_reloaded++; 
}); 

Как послать эту информацию, как только она захватывается до вас. Одна из возможностей заключается в том, чтобы вводить его в скрытое поле ввода в форме до его отправки.

Также обратите внимание, что это только количество чисел, в течение которых кнопка была нажата, а не количество раз, когда она была фактически перезагружена. Существует задержка между нажатием кнопки перезагрузки recaptcha и повторной загрузкой recaptcha, а дополнительные клики в течение этого интервала будут проигнорированы.

+0

Я, похоже, не могу заставить JavaScript работать с введенным HTML. Даже простенькое уведомление о клике, по-видимому, не зарегистрировано. Где я должен поместить скрипт? Я пробовал разные места без везения. Кроме того, я не уверен, что у нас есть тот же код для reCAPTCHA. HTML, введенный в мой, на самом деле:

Я попытался изменить #recaptcha_reload_btn на .rc-buttonreload, но не повезло. – Leherenn

+0

Я не использовал правильный код от Google, поэтому он не работал. Я использовал «

» вместо библиотеки PHP. – Leherenn

0
$(document).on('click','#recaptcha_reload',function(){ 
    try { 
    _gaq.push(['_trackEvent', location.href, 
       'Captcha reload', '']); 
    } catch(e) {} 
}); 
+1

Не могли бы вы отредактировать свой ответ, включив в него почему это решает вопрос? –

Смежные вопросы