reCaptcha 不适用于 Firefox

reCaptcha not working on firefox

我的 reCaptcha 有问题,它的实现如下...

<head>
    <script>
    var widget_register;
    var onloadCallback = function () {
        widget_register = grecaptcha.render('form_recaptcha', {
            'sitekey': 'my-own-sitekey'
        });
    };
    </script>
</head>


<script>
    function setCaptcha(captcha) {
        app.captcha_response = captcha;
    }
</script>

<form id="recaptcha" class="design_recaptcha" action="javascript:setCaptcha(grecaptcha.getResponse(widget_register));">
    <div id="form_recaptcha"></div>
    <input type="submit" hidden/>
</form>

<script src="https://www.google.com/recaptcha/api.js onload=onloadCallback&render=explicit" async defer>
</script>

<paper-button id="register">Register</paper-button>

当单击带有 "register" id 的按钮时,在我的 javascript 中执行以下代码。

$('#recaptcha').submit();

然后执行setCaptcha函数,得到reCaptcha响应码如下。您可以在上面的表单操作标记中找到此代码。

action="javascript:setCaptcha(grecaptcha.getResponse(widget_register));"

然后将验证码响应保存到我的 app.js 中的一个变量中。

此设置适用于 chrome、opera 和 egde 浏览器。唯一不能用的浏览器是firefox。

有人有同样的问题吗?还是适合我的解决方案?谢谢:)

使用 onsubmit 属性而不是在真正用于 post url:

的动作标签中
onsubmit="setCaptcha(grecaptcha.getResponse(widget_register)); return false"

如果您希望表单真正提交(我认为在这种情况下您不会这样做),return true 而不是 false。