2011-03-11 21 views
10

No se puede averiguar cómo el tema recaptcha cargado ajax. El siguiente código no funciona.
De Google RecaptchaReCAPTCHA ajax problema de tema cargado

Saw este post Recaptcha ajax API custom theme not working, pero definitivamente estoy viendo en localhost Reconocer y está trabajando bien, pero no cambiar temas.

¿Alguien tiene consejos sobre cómo hacer que el tema blanco funcione?

<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

wow, primera vez que he emitido una recompensa, lo que los grandes resultados y rápidamente. Encontré el problema y sí, fue más simple de lo que pensaba. Gracias por la ayuda de todos. – jhanifen

+0

Gracias por la pregunta. Parece que es un solo ejemplo de usar el viejo ReCaptcha v1 en internet. – Kate

Respuesta

5

Parece que no está agregando las opciones que ha establecido RecapthcaOptions. Intente cambiar a:

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

See the doc's, la tercera opción se pasa al método .create() es las opciones. Está configurando una variable fuera de la función para establecer las opciones, pero no las incluye.

+0

Gracias Scoobler, sí, fue así de fácil. – jhanifen

+0

No problema, me alegro de haber ayudado! – Scoobler

+0

Siempre me olvido de leer los documentos. RTFM! – Derek

5

@jhanifen: Lo tengo trabajo después de usar la mayor parte del código de http://wiki.recaptcha.net/index.php/Installation, probar este -

<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

Gracias stealthyninja, esto funcionó muy bien. Usted o la respuesta anterior habría sido genial. – jhanifen

+0

El enlace está muerto :( – Shanimal

+0

@Shanimal - https://developers.google.com/recaptcha/docs/display?csw=1#AJAX – stealthyninja

0

Yendo manera la navaja de Occam, se puede verificar que la secuencia de comandos para configurar el tema es antes de el elemento de formulario. Como se indicó varias veces en los documentos, el script no funciona dentro o después del elemento de formulario.

1

En primer lugar, su clave no es válida o incorrecta, o si desea que se publique aquí: D Si no es necesario. intente obtener uno nuevo, y tal vez hacerlo uno global (podría afectar las cosas del localhost). O cargue y pruebe el código en el dominio que ha especificado.

Este fragmento de código funciona para mi llave pública global, i para fijar el tema directamente en la creación

<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

Sí, la clave se cambió un poco antes de publicar. Pero no es lo mismo que mi ejemplo, aunque el enfoque habría funcionado. – jhanifen

+0

I le gustó esta solución porque solo está usando jQuery para ayudar con onLoad. Este método también funcionará para iPhone 3GS, cuando '' script src = "// www.google.com/recaptcha/api/challenge?k= ">' método no siempre se carga en el primer intento. – Reuben