reCAPTCHA 2.0 не отображается в Safari (работает в Edge, Chrome и Firefox)

Я только что интегрировал Google reCAPTCHA 2.0 на свой сайт. Он работает должным образом в Chrome, Firefox и Edge, но не работает/не отображается в Safari на моем MacBook Pro.

  • 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 },
...

Который во всех браузерах кроме сафари генерирует это...

введите здесь описание изображения

Но в сафари его нет...

введите здесь описание изображения

В консоли ошибок нет. Я очистил весь кеш браузера. Расположение строки api.js находится непосредственно перед закрывающим тегом </head>, как говорится в документации Google. Не знаю, что еще попробовать.

ОБНОВЛЕНИЕ: В Safari, когда я проверяю область, где должна отображаться reCAPTCHA, я вижу только исходное <div class="g-recaptcha" data-sitekey="MY_KEY_HERE"></div>, в котором ничего нет. Так что по какой-то причине iframe не помещается в этот div. Надеюсь, это поможет.

ОБНОВЛЕНИЕ: я вернулся и реализовал reCAPTCHA v2 сегодня (3,5 года спустя), и теперь она работает в Safari.


person gfrobenius    schedule 11.01.2017    source источник
comment
Если у вас есть блокировщик рекламы, попробуйте его отключить...   -  person Ani    schedule 24.01.2017
comment
Safari - Настройки - › Безопасность - › Я снял флажок Блокировать всплывающие окна. У меня не было никакого эффекта. У меня нет другого программного обеспечения для блокировки рекламы.   -  person gfrobenius    schedule 24.01.2017
comment
ОБНОВЛЕНИЕ: В Safari, если я перехожу к «Разработка» -> «Агент пользователя» -> «Если я выбираю Edge, Chrome (Win или Mac), Firefox (Win или Mac), он работает. Это в Safari, просто сменить пользовательский агент. Может быть, это поможет кому-то решить эту проблему, я не знаю.   -  person gfrobenius    schedule 24.01.2017
comment
Это относится не только к вашему сайту - я нашел другие сайты, где капчи работают в Chrome, но не в Safari (именно так я оказался здесь)   -  person Jeremy Young    schedule 13.09.2017


Ответы (3)


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

'captcha-form' — это идентификатор формы, содержащей капчу. Удалите теги сценария, чтобы сценарии не выполнялись во второй раз, когда Safari перерисовывает их после перемещения jQuery. Обработчики событий, созданные сценарием, не находятся в тегах сценария, поэтому они сохраняются.

2. Установите ссылки в файле конфигурации reCAPTCHA с http на https.

Я только что вспомнил, что недавно также включил «Использовать HTML5 в формах» в общих настройках Formidable. Если я сниму этот флажок, reCAPTCHA будет работать в Safari.

Таким образом, это указывает на проблему с реализацией HTML5 в формах, возможно, она появляется только тогда, когда сайт использует HTTPS.

3. Перейдите по ссылкам ниже для получения более подробной информации.

устранение неполадок с reCAPTCHA2.0

Часто задаваемые вопросы по reCAPTCHA

Руководство по Google reCAPTCHA

person Varsha    schedule 21.01.2017
comment
Простите, я не понимаю. На моей странице нет ничего с идентификатором captcha-form. Я не создаю обычную HTML-форму. Это dhtmlXForm. Кроме того, я читал эту статью, но там нет параметра «Использовать HTML5 в формах», который должен быть более старым. Я добавил ОБНОВЛЕНИЕ к исходному вопросу. - person gfrobenius; 24.01.2017

Я столкнулся с той же проблемой на своем сайте, в моем случае это в Firefox, по-видимому, это потому, что JavaScript отключен (хотя он включен в браузере! и я тестировал на 3 разных компьютерах) я знаю это, потому что, когда я изменил настройки для reCaptcha для поддержки браузеров, которые не поддерживают Javascript, это решило проблему для меня.

Для этого вы можете «перейти к консоли администратора и переместить ползунок настроек безопасности в положение «самый простой для пользователей». Имейте в виду, что с этой настройкой reCAPTCHA не сможет использовать все свои функции безопасности». как сказано в Часто задаваемые вопросы по reCAPTCHA

Я надеюсь, что это поможет кому-то сузить проблему.

PS: у меня недостаточно репутации, чтобы оставить комментарий.

person hmk    schedule 13.10.2017

старый вопрос, но, возможно, это все равно кому-то поможет.

у меня была такая же проблема с 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() { ... } и капча работает нормально.

person Heiko    schedule 21.06.2020
comment
Я вернулся и внедрил reCAPTCHA v2 сегодня (3,5 года спустя), и, похоже, теперь он работает в Safari без каких-либо изменений. - person gfrobenius; 26.06.2020