reCAPTCHA 2.0 未出现在 Safari 中(适用于 Edge、Chrome 和 Firefox)

问题描述 投票:0回答:3

我刚刚将 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 之外的所有浏览器都会生成此...

但是在 Safari 中它没有出现...

控制台中没有错误。我已经清除了所有浏览器缓存。

api.js
行的位置紧接在结束
</head>
标签之前,如 Google 文档所述。不知道还能尝试什么。

更新:在Safari中,当我检查reCAPTCHA应该显示的区域时,我只看到原始的

<div class="g-recaptcha" data-sitekey="MY_KEY_HERE"></div>
,其中没有任何内容。因此,出于某种原因,它没有将 iframe 放入该 div 中。希望有帮助。

更新: 我今天回去实施了 reCAPTCHA v2(3.5 年后),它现在似乎可以在 Safari 中运行。

javascript safari dhtmlx recaptcha
3个回答
0
投票

1.

$('#captcha-form script').remove();

'captcha-form'
是包含验证码的表单的 id。删除脚本标签,这样当 jQuery 移动脚本后 Safari 重新呈现脚本时,脚本就不会再次执行。脚本创建的事件处理程序不在脚本标记中,因此它们仍然存在。

2. 将 reCAPTCHA 配置文件中的链接从 http 设置为 https

我刚刚想起来,我最近也在“强大的常规”设置中打开了“在表单中使用 HTML5”。如果我取消选中该选项,reCAPTCHA 将在 Safari 上运行。

因此,这表明您在表单中实现 HTML5 存在问题,也许只有当网站使用 HTTPS 时才会出现。

3. 请参阅下面提供的链接了解更多详细信息 -

reCAPTCHA2.0疑难解答

reCAPTCHA 常见问题

Google reCAPTCHA 教程


0
投票

我在我的网站上遇到了同样的问题,就我而言,它是在 Firefox 中,显然这是因为 JavaScript 被禁用(即使它在浏览器中启用了!并且我在 3 台不同的计算机上进行了测试) 我知道这一点是因为当我更改 reCaptcha 的设置以支持不支持 Javascript 的浏览器时,它为我解决了问题。

为此,您可以“导航到管理控制台并将安全首选项滑块移至“对用户来说最简单”。请记住,通过此设置,reCAPTCHA 将无法使用其所有安全功能。”正如reCAPTCHA常见问题

中所述

我希望这能帮助某人缩小问题范围。

PS:我没有足够的声誉来发表评论。


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

© www.soinside.com 2019 - 2024. All rights reserved.