बस इस बाधा मारा, और मेरे मामले में यह AngularJS के कारण था। यह कोणीय तक सीमित नहीं है, किसी भी पुस्तकालय जो पेज लोड के बाद तत्वों को बांधता है, Google reCAPTCHA को प्रदर्शित नहीं कर सकता क्योंकि तत्व Google के कोड को निष्पादित करते समय मौजूद नहीं है।
इस का समाधान करने के लिए, पहले स्पष्ट प्रस्तुत करना बनाने के लिए और निष्पादित करने के लिए जब reCAPTCHA भार एक समारोह की आपूर्ति:
<script src='https://www.google.com/recaptcha/api.js?onload=recaptchaOnload&render=explicit' async defer></script>
अब, कंटेनर, जैसे करने के लिए एक अद्वितीय ID जोड़ने
<div id="recaptcha" class="g-recaptcha" data-sitekey="site key here"></div>
तब कस्टम समारोह में तत्व के लिए प्रतीक्षा वास्तव में मौजूद:
var _captchaTries = 0;
function recaptchaOnload() {
_captchaTries++;
if (_captchaTries > 9)
return;
if ($('.g-recaptcha').length > 0) {
grecaptcha.render("recaptcha", {
sitekey: 'site key here',
callback: function() {
console.log('recaptcha callback');
}
});
return;
}
window.setTimeout(recaptchaOnload, 1000);
}
यह 10 सेकंड के लिए कोशिश कर रखना होगा, जब तक यह तत्व पाता है, तो यह में reCAPTCHA प्रस्तुत करना।
स्रोत
2017-09-24 09:42:59
क्या कंसोल में कोई स्क्रिप्ट त्रुटियां हैं? – Ravimallya