Вставка скрипта из jQuery / Javascript - PullRequest
0 голосов
/ 27 апреля 2010

Я пытаюсь вставить код 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.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2010

Первая часть кода: вставить пробел в конце первой строки:

return '<script type="text/javascript" ' +

0 голосов
/ 27 апреля 2010

Использование getScript метод jQuery.

Может быть этот ответ может быть полезен:

Ответ на стек

...