2011-03-11 89 views
10

無法弄清楚如何主題ajax加載的recaptcha。下面的代碼不起作用。
Google RecaptchaReCAPTCHA ajax加載的主題問題

看到這個帖子Recaptcha ajax API custom theme not working,但我肯定是在本地主機和驗證碼查看工作正常,只是沒有改變的主題。

任何人都有如何讓白色主題工作的建議?

<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

哇,我第一次發出了懸賞,有什麼偉大的成績和快速。發現問題,是的,它更簡單,然後我想。感謝大家的幫助。 – jhanifen 2011-03-14 23:15:24

+0

謝謝你的問題。它看起來像是在互聯網上使用舊版reCaptcha v1的一個例子。 – Kate 2015-08-21 12:45:02

回答

5

我不認爲你正在添加你的選項,你已經設置了RecapthcaOptions。嘗試更改爲:

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

See the doc's,傳遞給.create()方法的第三個選項是選項。您正在設置函數外的變量來設置選項,但不包括它們。

+0

感謝Scoobler,是的,它是那麼容易 – jhanifen 2011-03-14 23:16:12

+0

無問題,很高興有幫助!! – Scoobler 2011-03-14 23:27:16

+0

我總是忘記閱讀文檔。RTFM! – Derek 2011-10-03 03:01:58

5

@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

謝謝stealthyninja,這很好。你或上面的答案本來很好。 – jhanifen 2011-03-14 23:18:01

+0

鏈接是死:( – Shanimal 2013-07-30 17:36:37

+0

@Shanimal - 。https://developers.google.com/recaptcha/docs/display?csw=1#AJAX – stealthyninja 2013-07-31 12:18:29

0

去的奧卡姆剃刀的方式,你可以驗證腳本用於設置主題是之前的表單元素。正如在文檔中多次提到的那樣,該腳本在表單元素內部或之後不起作用。

1

首先,你的密鑰無效或錯誤,或者你想要在這裏發佈:D 如果不想要。嘗試獲得一個新的,並可能使其成爲全球性的(可能影響本地主機的東西)。或者上傳並測試您指定的域上的代碼。

這段代碼適用於我的全球公共密鑰,我直接設置主題在創建

<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

是的,在發佈之前,鍵已經改變了一些。但是和我的例子不一樣,儘管這個方法可行。 – jhanifen 2011-03-14 23:17:28

+0

I最喜歡這個解決方案,因爲它只使用jQuery來幫助onLoad。這個方法也適用於iPhone 3GS,當'方法並不總是首先加載。 – Reuben 2014-03-31 23:22:54