reCAPTCHA 2.0没有出现在Safari中(适用于Edge,Chrome和Firefox)

时间:2017-01-11 19:58:49

标签: javascript safari dhtmlx recaptcha

我刚将Google reCAPTCHA 2.0整合到我的网站中。它在Chrome,Firefox和Edge中按预期工作,但在我的MacBook Pro上无法在Safari中显示。

  • MacBook Pro:macOS Sierra版本10.12.2。
  • Safari:版本10.0.2(12602.3.12.0.1)

reCAPTCHA正在这样的dhtmlXForm内使用......

...
{ type:"label", name:"myrecaptcha", label:"<div class=\"g-recaptcha\" data-sitekey=\"MY_KEY_HERE\"></div>", offsetLeft:320 },
...

除了Safari之外的所有浏览器都会产生这个......

enter image description here

但在Safari中它似乎没有......

enter image description here

控制台中没有错误。我已经清除了所有浏览器缓存。正如Google的文档所述,api.js行的位置紧接在结束</head>标记之前。不知道还有什么可以尝试。

更新:在Safari中,当我检查reCAPTCHA应该显示的区域时,我只看到原始的<div class="g-recaptcha" data-sitekey="MY_KEY_HERE"></div>,其中没有任何内容。因此,出于某种原因,它不会将iframe放入该div中。希望有所帮助。

3 个答案:

答案 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. 有关详细信息,请参阅以下提供的链接 -

reCAPTCHA2.0 troubleshooting

reCAPTCHA Frequently asked questions

Google reCAPTCHA tutorial

答案 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() { ... }并且验证码工作正常。