从jQuery / Javascript插入脚本

时间:2010-04-27 12:44:27

标签: javascript recaptcha

我正在尝试从jQuery中将reCaptcha代码插入到我的页面中,但它不起作用。

这是我的代码:

$("#button").click(function() {
        $("#loginBox").html($.getRecaptcha());
    })

当我尝试以下操作时,我的代码甚至都没有运行。我认为它试图执行而不是渲染它。

$.getRecaptcha = function(){
    return '<script type="text/javascript"' +
        'src="http://api.recaptcha.net/challenge?' + 
        'k=6Ld3iAsAAAAAAGyX8QT244GagPEpCDSD-96o4gEi"></script>';

}

使用以下代码,代码运行,但当我点击#button时,我得到一个空的,全白色 浏览器窗口。

$.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;),但它将下载内容而不管它是什么。

我可以插入reCaptcha为我们提供的“noScript”代码,但它也不起作用,因为它可以发现浏览器允许javascript但我使用noScript。

有什么建议吗?

(我知道我将我的公共reCaptcha密钥放入代码中,但它仅用于测试目的,无论如何你可以从我的html或javascript代码中获取它)

更新:

Krunal Mevada回答了我的问题。但它不适用于reCaptcha。 reCaptcha提供reCaptcha AJAX API,这是我特定问题的答案。但是,使用getScript(),我可以动态地下载reCaptcha AJAX API javascipt文件。

2 个答案:

答案 0 :(得分:0)

使用 getScript jQuery方法。

这个答案可能很有用:

Stack Answer

答案 1 :(得分:0)

第一个代码部分:在第一行的末尾插入一个空格:

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