У меня возникают проблемы с отображением Google reCAPTCHA на странице, загруженной с использованием AJAX.
Итак, для начала вы перейдете на страницу. Затем вы нажимаете, например, ссылку «Контакт», которая загружает страницу контактов через AJAX. Страница загружается нормально, но Google reCAPTCHA не отображает.
Я уже пробовал просмотреть большинство существующих решений, но они у меня не работают. Код работает нормально, когда формы загружаются без AJAX.
Любая помощь очень ценится!
Код ниже-
function renderRecaptcha () {
if ($('#grecaptcha').length) {
grecaptcha.render('grecaptcha', {
sitekey: 'siteKey',
callback: response => {
console.info(response)
},
})
}
}
<div class = "g-recaptcha" id = "grecaptcha"></div>
<script src='https://www.google.com/recaptcha/api.js?onload=renderRecaptcha&render=explicit' defer>
РЕДАКТИРОВАТЬ
Все встроенные вызовы, сделанные в представлении AJAX, работают, но никакие другие вызовы JavaScript не работают.
<p onclick = "renderRecaptcha()"id = "MYBTN">CLICK</p>
Приведенный выше код вызывает функцию и отображает капчу.
Однако в приведенном ниже коде ничего не печатается.
$('#MYBTN').on('click', () => {
console.info('here')
})
Он уже вызывает его - afterOpen: function () {renderRecaptcha ('grecaptcha');}}
Что такое afterOpen? И почему вы вызываете renderRecaptcha с аргументом ('grecaptcha')? Эта функция не требует
Извини, моя ошибка. Мне нужно предоставить больше информации. Формы загружаются в лайтбокс. AfterOpen запускается после загрузки содержимого в лайтбокс. Также я изменил функцию. Прямо сейчас я просто пытаюсь поработать для одного, чтобы не использовать переданный val.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Что ж, вызовите
renderRecaptcha()после завершения ajax ...?