ReCAPTCHA ajax загруженная проблема темы - PullRequest
10 голосов
/ 12 марта 2011

Не могу понять, как оформить тему загруженной рекапчи. Приведенный ниже код не работает.
С Google Recaptcha

Видел этот пост Пользовательская тема Recaptcha ajax API не работает , но я определенно просматриваю на 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>

Ответы [ 4 ]

5 голосов
/ 14 марта 2011

Не похоже, что вы добавляете свои опции, которые вы установили RecapthcaOptions.Попробуйте изменить на:

$.getScript('http://www.google.com/recaptcha/api/js/recaptcha_ajax.js',
        function() {Recaptcha.create("6Ldr7woAAAAAADa_69Mr-EZKAeYyEx9N08q", "recaptcha_content", RecaptchaOptions);
});

См. Документ , третий параметр, переданный методу .create(), - это параметры.Вы устанавливаете переменную вне функции для установки параметров, но не включаете их.

5 голосов
/ 14 марта 2011

@ 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>
1 голос
/ 14 марта 2011

Прежде всего, ваш ключ недействителен или неправильный, или вы хотели, чтобы он размещался здесь: 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>
0 голосов
/ 14 марта 2011

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

...