Ruby on rails 模式窗口内的recaptcha(fancybox)
我试图通过fancybox中的ajax加载表单。它工作得很好,一切都很好 我使用了recaptcha(rails)插件,并在表单上获得了验证码。现在,当fancybox加载时,它会被重定向到一个只有验证码的空页面 我想这是iframe和模态窗口的一些问题 是否有人在fancybox中的表单上加载了recaptcha?如果你能给我举个例子,我会帮你的Ruby on rails 模式窗口内的recaptcha(fancybox),ruby-on-rails,modal-dialog,lightbox,fancybox,recaptcha,Ruby On Rails,Modal Dialog,Lightbox,Fancybox,Recaptcha,我试图通过fancybox中的ajax加载表单。它工作得很好,一切都很好 我使用了recaptcha(rails)插件,并在表单上获得了验证码。现在,当fancybox加载时,它会被重定向到一个只有验证码的空页面 我想这是iframe和模态窗口的一些问题 是否有人在fancybox中的表单上加载了recaptcha?如果你能给我举个例子,我会帮你的 感谢您的帮助……我也有同样的问题,尽管只是在Safari中(可能也是Chrome)。它在Firefox中运行良好。它与Ruby无关(我使用Grail
感谢您的帮助……我也有同样的问题,尽管只是在Safari中(可能也是Chrome)。它在Firefox中运行良好。它与Ruby无关(我使用Grails),所有jQuery弹出窗口都会出现问题(我尝试过blockUI、SimpelModal和ThickBox) 据我所知,由于某种原因,当jQuery在domtree中移动iframe(这就是ReCaptcha)时,Webkit决定将iframe内容作为新页面加载。或者用iframe内容替换页面内容 我很确定这是一个Webkit错误,我不知道是否有可能修复 编辑:发现有一个可能的修复方法:
$(“#验证码表单脚本”).remove()代码>
“验证码表单”是包含验证码的表单的id。删除脚本标记,以便在jQuery移动脚本后,Safari重新呈现脚本时不会再次执行脚本。脚本创建的事件处理程序不在脚本标记中,因此它们仍然存在
我认为Safari在重新呈现标记时会重新执行javascript。当对话框打开时,模式对话框中的任何内容都会重新呈现。此外,我怀疑在重新呈现后,recaptcha使用的document.write会混淆它的位置,并将其弄糟。我在fancybox中也遇到了同样的问题。我使用recaptcha ajax API解决了这个问题:
如果有人仍在寻找一个简单的解决方案,我已经通过调用一个iframe在fancybox中获得了一个可以工作的recaptcha
如果从类选择器中调用它:
<script>
$(document).ready(function() {
$(".example").fancybox({
fitToView : true,
autoSize : false,
openEffect : 'elastic',
closeEffect : 'elastic'
});
});
</script>
通过fancybox中的ajax加载带有recaptcha的表单的简单解决方案
<%= recaptcha_tags ajax: true %>
$.fancybox({
width : '520px',
height : '230px',
autoSize : false,
openEffect : 'elastic',
closeEffect : 'elastic',
'href' : 'http://www.url.cc',
type : 'iframe'
});
<%= recaptcha_tags ajax: true %>