我正在尝试从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文件。
答案 0 :(得分:0)
答案 1 :(得分:0)
第一个代码部分:在第一行的末尾插入一个空格:
return '<script type="text/javascript" ' +