Я пытаюсь вставить код reCaptcha на мою страницу из jQuery, но он не работает.
Вот мой код:
$("#button").click(function() {
$("#loginBox").html($.getRecaptcha());
})
Когда я пытаюсь выполнить следующее, мой код даже не запускается. Я думаю, что он пытается выполнить вместо рендеринга.
$.getRecaptcha = function(){
return '<script type="text/javascript"' +
'src="http://api.recaptcha.net/challenge?' +
'k=6Ld3iAsAAAAAAGyX8QT244GagPEpCDSD-96o4gEi"></script>';
}
При следующем коде запускается, но когда я нажимаю кнопку #, я получаю пустой, полностью белый
окно браузера.
$.getRecaptcha = function(){
var captcha = $("<script>")
.attr("type", "text/javascript")
.attr("src", "http://api.recaptcha.net/challenge?k=6Ld3iAsAAAAAAGyX8QT244GagPEpCDSD-96o4gEi");
return captcha;
}
Я не хочу вставлять код reCaptcha в мой html с самого начала, потому что он загружает контент reCaptcha с сервера reCaptcha, даже если мои пользователи не хотят его использовать. Я мог бы установить видимость контейнера, который содержит reCaptcha, как невидимый (display: none;), но он будет загружать контент независимо от него.
Я могу вставить код «noScript», который дает нам reCaptcha, но он тоже не работает, потому что он может определить, что браузер разрешает JavaScript, но я использую noScript.
Есть предложения?
(я знаю, что я вставил свой открытый ключ reCaptcha в код, но он только для целей тестирования, и вы все равно можете получить его из моего html или javascript кода)
UPDATE:
Крунал Мевада ответил на мой вопрос. Но это не работает с reCaptcha. reCaptcha предлагает reCaptcha AJAX API , который является ответом на мой конкретный вопрос. Однако с помощью getScript () я могу динамически загрузить файл javascipt API reCaptcha AJAX.