Ошибка при загрузке recaptcha v2 (Проблема найдена)

Недавно обнаружил проблему при загрузки revaptcha v2 по js
https://www.google.com/recaptcha/api.js?hl=ru


выдавало ошибку в консоли:
error Uncaught TypeError: Cannot read property 'I' of undefined
... at ce (recaptcha__ru.js:152)


Методом тыка обнаружил что конфликт идет с 1 функцией из
engine/lib/internal/template/js/main.js

Function.prototype.binds = function(context) {	
	var fn = this;
	if(jQuery.type(fn) != 'function'){
		throw new TypeError('Function.prototype.bind: call on non-function');
	};
	if(jQuery.type(context) == 'null'){
		throw new TypeError('Function.prototype.bind: cant be bound to null');
	};
	return function() {
		return fn.apply(context, arguments);
	};
};


Если удалить эту функцию или переименовать ошибка пропадает и капча нормально загружается и проверяет.

Вопрос: За что отвечает данная функция кто знает, что делать в таком случае?
Чую переименование ее повлечет за собой другие проблемы или нет?

10 комментариев

avatar
… конфликт идет с 1 функцией из...
Это полифилл для неподдерживающих bind старых браузеров.
По сути можно удалить, т.к. таких браузеров сейчас практически нет.

Но проще обернуть функцию в:
if (!Function.prototype.bind) {
    ...
}
avatar
И, кстати, в LS2.0 это пофиксили — можно сделать также
avatar
Благодарю! Всегда выручаешь :)))
avatar
А где вы вообще взяли рекапчу 2 для лс 1? :/
avatar
avatar
Спасибо
avatar
Не хочет у меня капча работать никаким образом
avatar
Может что-то в api и в либе поменялось
avatar
В плагине библиотека состоит из набора функций, а по ссылке — полноценный класс
avatar
Подправил в соответствии новым API. Проверь pls — должно работать.
lsplugin_recaptcha.zip
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.