Я использую Smoothstate на своем сайте и недавно включил Recaptcha в мою контактную форму, что привело к странной проблеме: скрипт Recaptcha, который загружается через тег скрипта в форме, не выполняется при загрузке первой страницы через Smoothstate;на последующих загрузках это делает, хотя.Если я включу скрипт в голову, он, кажется, будет работать нормально, но я бы предпочел не загружать скрипт на каждой странице, а только на странице формы контакта.Я в тупике, почему так происходит - у кого-нибудь есть идея?
Вот код, который у меня есть в моей форме:
<script src="https://www.google.com/recaptcha/api.js?render=xxx"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('xxx', {action: ''}).then(function(token) {
document.getElementById('g-recaptcha-response').value = token;
});
});
</script>
А это мой код Smoothstate:
$(function() {
'use strict';
var options = {
prefetch: true,
cacheLength: 2,
onStart: {
duration: 500, // Duration of our animation
render: function($container) {
// Add your CSS animation reversing class
$container.addClass('is-exiting');
// Restart your animation
smoothState.restartCSSAnimations();
}
},
onProgress: {
// How long this animation takes
duration: 0,
// A function that dictates the animations that take place
render: function ($container) {
$('.loader-ring').show(100);
}
},
onReady: {
duration: 0,
render: function($container, $newContent) {
// Remove your CSS animation reversing class
$container.removeClass('is-exiting');
// Inject the new content
$container.html($newContent);
}
},
onAfter: function($container, $newContent) {
addClass();
fn();
},
blacklist: '.form, .image-link'
},
smoothState = $('#page').smoothState(options).data('smoothState');
});