Проблема с загруженной темой reCAPTCHA ajax
Невозможно понять, как использовать тему ajax загруженного recaptcha. Следующий код не работает.
Из Google Recaptcha
Увидел этот пост пользовательскую тему API Recaptcha ajax, не работающую, но я определенно просматриваю в localhost, и recaptcha работает нормально, просто не меняя тем.
У кого-нибудь есть советы о том, как заставить белую тему работать?
<script type='text/javascript'>
var RecaptchaOptions = {
theme : 'white'
};
</script>
<div id="recaptcha_content">
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=6Ldr7woAAAAAADa_69Mr-EZKAeYyEx9N08q" height="300" width="500" frameborder="0"></iframe><br />
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type='hidden' name='recaptcha_response_field' value='manual_challenge' />
</noscript>
</div>
<script type="text/javascript">
$(document).ready(function() {
$.getScript('http://www.google.com/recaptcha/api/js/recaptcha_ajax.js',
function() {Recaptcha.create("6Ldr7woAAAAAADa_69Mr-EZKAeYyEx9N08q", "recaptcha_content");
});
});
</script>
Ответы
Ответ 1
Я не похож, что вы добавляете свои настройки, которые вы установили RecapthcaOptions
. Попробуйте изменить на:
$.getScript('http://www.google.com/recaptcha/api/js/recaptcha_ajax.js',
function() {Recaptcha.create("6Ldr7woAAAAAADa_69Mr-EZKAeYyEx9N08q", "recaptcha_content", RecaptchaOptions);
});
См. документ, третьим параметром, переданным методу .create()
, являются параметры. Вы устанавливаете переменную вне функции для установки параметров, но не включаете их.
Ответ 2
@jhanifen: я получил работу после использования большей части кода из http://wiki.recaptcha.net/index.php/Installation, попробуйте это -
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
$.getScript('http://www.google.com/recaptcha/api/js/recaptcha_ajax.js',
function() {
Recaptcha.create("6Ldr7woAAAAAADa_69Mr-EZKAeYyEx9N08q",
"recaptcha_content",
{
theme: "white",
callback: Recaptcha.focus_response_field
}
);
});
});
</script>
<div id="recaptcha_content">
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=6Ldr7woAAAAAADa_69Mr-EZKAeYyEx9N08q" height="300" width="500" frameborder="0"></iframe><br />
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type='hidden' name='recaptcha_response_field' value='manual_challenge' />
</noscript>
</div>
</body>
</html>
Ответ 3
Прежде всего, ваш ключ недействителен или ошибочен, или вы хотели, чтобы он размещался здесь: D
Если не хотите. попытайтесь получить новую и, возможно, сделать ее глобальной (может повлиять на материал localhost). Или загрузите и протестируйте код в указанном вами домене.
Этот фрагмент работает для моего глобального открытого ключа, я устанавливаю тему непосредственно при создании
<html>
<head>
<title>recaptcha test</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
</head>
<body>
<div id="recaptcha_content">
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=publickey" height="300" width="500" frameborder="0"></iframe><br />
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type='hidden' name='recaptcha_response_field' value='manual_challenge' />
</noscript>
</div>
<script type="text/javascript">
$(document).ready(function() {
Recaptcha.create("publickey",
"recaptcha_content", {
theme: "white",
callback: Recaptcha.focus_response_field
});
});
</script>
</body>
</html>
Ответ 4
Переходя к методу "Оккам-бритва", вы можете проверить, что script для установки темы до элемента формы. Как указано несколько раз в документах, script не работает внутри или после элемента формы.