captcha - 重新验证码的小部件按钮重新加载整个页面

标签 captcha recaptcha

我已经实现了 Google 的重新验证码,并且在 Chrome 中完美运行(AJAX API)。 IE 是问题...

我有:localhost://myapp/index.html忘记密码的链接。单击此链接时,将调用 jQuery 单击处理程序。处理程序函数更改 div 的内容,并调用 Recaptcha.create(...) 小部件在 Chrome 中正确显示并按预期工作,但在 IE 中,如果我单击重新加载图标或声音按钮它会重新加载整个页面。

如果我手动调用 Recaptcha.reload() 它会重新加载而不会出现任何问题?!

我的 HTML 是:

<div id="recaptcha" style="width:120px"></div>

[...]

<script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>

[...]

//In a jquery click handler I call
Recaptcha.create("6LxxxxxxxxxxxxxxxxxxxxxxIrpV5RO8P",
                    "recaptcha",
                    {
                        theme:'white',
                        callback: Recaptcha.focus_response_field
                    }
            );

到目前为止一切顺利...验证码在所有浏览器中都能很好地加载。在 IE8 和 9 中,当我单击小部件按钮进行重新加载和 mp3 版本时,整个页面都会重新加载

我尝试将 http 更改为 https,反之亦然,但仍然没有任何运气......

最佳答案

当调用 Recaptcha.create(); 时,Google 的重新验证码 RELOAD 和 IMAGE/TEXT 按钮的代码如下所示:

 <a href="javascript:Recaptcha.reload();">

我不知道为什么当按下按钮时,页面会在 IE 中的应用程序中重新加载,并且在 Google 提供的演示中 DEMO它发送一个异步请求...

由于我无法更改 href 属性中的 JavaScript,因此我必须在 jQuery $(document).ready();< 中添加 onclick 处理程序

我的解决方案是这样的:

$("#recaptcha).on("click", "id_of_the_reload_button", function(e){
    e.preventDEfault();
    Recaptcha.reload();
});

我基本上阻止了谷歌提供的 anchor 的自然行为,并自己调用了 reload() 函数。 我从来没有找出是什么导致我的页面重新加载

关于captcha - 重新验证码的小部件按钮重新加载整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13971737/

相关文章:

jquery - 验证码:验证困难

java - google服务器如何区分浏览器和HtmlUnit?

javascript - jQuery AJAX 响应中包含的脚本标记在插入 DOM 时未被评估?

java - 使用 Apache Shiro 实现 reCaptcha

php - 创建评估时 Recaptcha Enterprise API 错误

android - C2DM 上的验证码

security - 限制(和记录)登录尝试的最佳方法

ios - 我们如何将验证码集成到 iOS 应用程序中?

javascript - Google Recaptcha 在重置时抛出错误

javascript - 如何在一页上使用 recaptcha 设置多个表单?