2015-02-26 27 views
10

Google reCAPTCHA üzerinde çalışıyorum. İyi çalışıyor ama reCAPTCHA oturumu belirli bir süre sonra süresi dolduğunda ve kullanıcı reCAPTCHA'yı doldurmak için onay kutusuna tekrar tıklandığında, google, Error: invalid load parameters. diyerek uyarıyı gösterir Kullanıcı, sayfayı yeniden yükleyene kadar hiçbir şey çalışmayacaktır.yangın olayı

session expired mesaj içeren div bloğu, rc-anchor-expired-msg sınıfına sahiptir. Oturumu sona erdiğinde ve recaptcha'yı sıfırlamaya çalıştığı anda bir olayı tetiklemek için bu sınıfı kullanarak div show etkinliğini denedim. Ama bu da çalışmıyor.

Oturumun süresi dolduğunda recaptcha'yu sıfırlayabilen bir geri arama işlevi veya bir şey var mı?

+2

Onay kutusu işaretlendiğinde bile bir yangın yapmak istiyorum. Bu soruya benzer şekilde, temel olarak Google'ın reCaptcha 2'ye yönelik etkinlik işleyicilerine nasıl eylemler ekleyebiliriz? – Bryan

cevap

22

ReCAPTCHA'yı oluştururken iletebileceğiniz ve sonra grecaptcha.reset() yöntemini çağırabileceğiniz bir geri arama çağrısı parametresi vardır. Örneğin

: başlığındaki

koyun bu.

<script> 
    var callback = function() { 
     grecaptcha.render('id-of-render-element', { 
     'sitekey': 'your-site-key', 
     'expired-callback': expCallback 
     }); 
    }; 
    var expCallback = function() { 
     grecaptcha.reset(); 
    }; 
</script> 

Bunu, reCAPTCHA'yı oluşturmak için kullanılacak olan öğeden sonra koyun.

<div id="id-of-render-element"></div> 
<script src="https://www.google.com/recaptcha/api.js?onload=callback&render=explicit" async defer></script> 

Bu, oturumun süresi her dolduğunda reCAPTCHA'yı sıfırlar. Benim için Error: invalid load parameters. uyarı penceresinin sorunundan kurtuldum.

Nasıl çalıştığını açıklamanın gerekmesi durumunda, api yüklendiğinde, başlık komut dosyası etiketinden callback işlevini çağırır. Bu işlev reCAPTCHA'yı oluşturur ve expired-callback'un reCAPTCHA'yı orjinal durumuna geri döndüren expCallback işlevi olduğunu bildirir.

Sen (yukarıda açıkça gibi render aksine) otomatik widget'ı reCAPTCHA'yı işlerken bir etiket özellik olarak data-expired-callback kullanabilmek için olması gerekiyordu ama ben böyle çalıştım geri arama benim için işe yaramaz.

İlgili konular