我刚将Google reCAPTCHA 2.0整合到我的网站中。它在Chrome,Firefox和Edge中按预期工作,但在我的MacBook Pro上无法在Safari中显示。
reCAPTCHA正在这样的dhtmlXForm内使用......
...
{ type:"label", name:"myrecaptcha", label:"<div class=\"g-recaptcha\" data-sitekey=\"MY_KEY_HERE\"></div>", offsetLeft:320 },
...
除了Safari之外的所有浏览器都会产生这个......
但在Safari中它似乎没有......
控制台中没有错误。我已经清除了所有浏览器缓存。正如Google的文档所述,api.js
行的位置紧接在结束</head>
标记之前。不知道还有什么可以尝试。
更新:在Safari中,当我检查reCAPTCHA应该显示的区域时,我只看到原始的<div class="g-recaptcha" data-sitekey="MY_KEY_HERE"></div>
,其中没有任何内容。因此,出于某种原因,它不会将iframe放入该div中。希望有所帮助。
答案 0 :(得分:0)
1。 $('#captcha-form script').remove();
'captcha-form'
是包含验证码的表单的ID。删除脚本标记,以便在jQuery移动它们后Safari重新呈现它们时,脚本不会再次执行。脚本创建的事件处理程序不在脚本标记中,因此它们可以存活。
2. :将reCAPTCHA配置文件中的链接从 http 设置为 https
我刚刚回忆起我已经开启了#34;在表格中使用HTML5&#34;最近在Formidable General设置中。如果我取消选中,则reCAPTCHA适用于Safari。
因此,这表明您在表单中实现HTML5存在问题,可能只是在网站使用HTTPS时才会出现问题。
3. 有关详细信息,请参阅以下提供的链接 -
答案 1 :(得分:0)
我在我的网站上面临同样的问题,在我的情况下,它在Firefox中显然是因为JavaScript被禁用(即使它已在浏览器中启用了!我在3台不同的电脑上测试过) 我知道这是因为当我更改reCaptcha的设置以支持不支持Javascript的浏览器时,它解决了我的问题。
要执行此操作,您可以导航至admin console并将安全首选项滑块移至&#34;最简单的用户&#34;。请注意,通过此设置,reCAPTCHA无法使用其所有安全功能。&#34;如reCAPTCHA Frequently asked questions
中所述我希望这会帮助有人缩小问题。
PS:我没有足够的声誉发表评论。
答案 2 :(得分:0)
古老的问题,但无论如何它可能会帮助某人。
我在使用Google Recaptcha时遇到了同样的问题:在Chrome和Firefox中可以正常工作,但在Safari和Epiphany中却无法工作。
我通过替换一些旧的javascript代码解决了它:
if( typeof Map !== "function" ) {
function Map() {
// own definition similar to https://stackoverflow.com/a/15739569/7135635
}
}
现在我使用function MyMap() { ... }
并且验证码工作正常。