ОБНОВЛЕНИЕ: Обнаружено, что скрипт reCaptcha был загружен в другом частичном представлении, из-за которого iFrame не существовал, потому что скрипт Google API не загружался раньше всего!
I 'м реализации локализации reCaptcha v2.Тем не менее, я получаю jQuery 3.3.1 ошибку "Не удается прочитать свойство 'replace' of undefined".
function setRecaptchaLanguage() {
var lang = 'hr';
switch (window.localStorage.getItem('activeCulture')) {
case 'hr':
lang = 'hr';
break;
case 'en-US-POSIX':
lang = 'en';
break;
}
if (window.localStorage.getItem('language') == 'ru-RU') {
lang = 'ru';
window.localStorage.setItem('language', null);
}
// Get GoogleCaptcha iframe
debugger
var iframeGoogleCaptcha = $('#captchaElement').find('iframe');
// For setting new language
if (iframeGoogleCaptcha != null)
iframeGoogleCaptcha.attr("src", iframeGoogleCaptcha.attr("src").replace(/hl=(.*?)&/, 'hl=' + lang + '&'));
}
$(document).ready(function () {
//set reCaptcha language
setRecaptchaLanguage();
});
Эта ошибка возникает не каждый раз, и мне все еще трудновыявление этой проблемы.Это происходит при переключении языков, но iFrameGoogleRecaptcha не является нулевым, даже когда я получаю эту ошибку.Я погуглил проблему, но большинство ответов указывают на несуществующий элемент, который я пытаюсь использовать «заменить», но я не понимаю, как это может быть проблемой, если элемент никогда не равен нулю.
Есть предложения?