Recaptcha不渲染

时间:2015-08-05 19:06:26

标签: django recaptcha

这应该是完全简单的,但我想我必须遗漏一些东西..

我把它放在html主体中,在表单之前:

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

然后在表单中我有这个rec​​aptcha div:

...
<form action="" method="post">
    <div class="g-recaptcha" data-sitekey="[MY_API_KEY]"></div>
    ...

当页面加载时,没有重新记录,而且firebug的控制台也没有输出任何内容。可能有什么不对?

编辑:现在它实际上有效,但我必须刷新页面,但如果它工作与否,它是完全随机的。这真是一种奇怪的行为。

2 个答案:

答案 0 :(得分:0)

我在网站上遇到了与chart.js类似的问题。

如果,与我的情况相同(当重装页面工作时),我认为直到您的html渲染才会下载js文件。

检查safari或chrome资源下载时间。 如果您的屏幕已准备就绪并且recapcha.js一直下载,您应该添加设置超时或等等以等待您的javascript代码。

我试过这样的..

setTimeout(function(){ 
    Chart.defaults.global.tooltipFontSize= 10;
    Chart.defaults.global.scaleShowLabels=false;
}, 10)

答案 1 :(得分:0)

尝试从脚本代码中删除asyncdefer属性,并将其放在表单上方的某个位置。

<script src='https://www.google.com/recaptcha/api.js'></script>

这将确保在解析表单之前运行脚本。

api.js只有~532字节(缩小),不应该为页面加载增加很多开销。

此外,我还不确定此问题是否与django相关。我建议你从问题中删除该标签:)

希望这有帮助,祝你好运。