2017-01-11 12 views
6

Je viens d'intégrer le Google reCAPTCHA 2.0 dans mon site. Cela fonctionne comme prévu dans Chrome, Firefox et Edge, mais cela ne fonctionne pas/n'apparaît pas dans Safari sur mon MacBook Pro.reCAPTCHA 2.0 n'apparaît pas dans Safari (fonctionne dans Edge, Chrome et Firefox)

  • MacBook Pro: MacOS Sierra version 10.12.2.
  • Safari: version 10.0.2 (12602.3.12.0.1)

Le reCAPTCHA est utilisé dans un dhtmlXForm comme ça ...

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

qui dans tous les navigateurs sauf pour Safari génère ce ...

enter image description here

Mais dans Safari, il ne semble pas ...

enter image description here

Il n'y a aucune erreur dans la console. J'ai effacé tout le cache du navigateur. L'emplacement de la ligne api.js se trouve juste avant la balise de fermeture </head> comme le dit la documentation de Google. Je ne sais pas quoi d'autre à essayer.

MISE À JOUR: Dans Safari quand j'inspecte la zone où le reCAPTCHA est censé montrer que je ne vois que l'<div class="g-recaptcha" data-sitekey="MY_KEY_HERE"></div> original avec rien dedans. Donc, il ne met pas l'iframe dans ce div pour une raison quelconque. J'espère que cela pourra aider.

+0

Si vous avez un adblock, essayez de l'éteindre ... – Ani

+0

Safari - Préférences -> Sécurité -> Je décoché "Bloquer les fenêtres pop-up". Je n'ai eu aucun effet. Je n'ai aucun autre logiciel de blocage des publicités en place. – gfrobenius

+0

** MISE À JOUR: ** Dans Safari, si je vais à développer -> User Agent -> Si je choisis Edge, Chrome (Win ou Mac), Firefox (Win ou Mac) cela fonctionne. C'est dans Safari, il suffit de changer l'agent utilisateur. Peut-être que cela aidera quelqu'un à réduire ce problème, je ne sais pas. – gfrobenius

Répondre

0

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

'captcha-form' est l'identifiant de la forme contenant le captcha. Supprimez les balises de script afin que les scripts ne soient pas exécutés une seconde fois lorsque Safari les restitue après que jQuery les a déplacés. Les gestionnaires d'événements créés par le script ne sont pas dans les balises de script, donc ils survivent.

2. Définissez les liens dans le fichier de configuration reCAPTCHA de http à https

je viens de rappeler que je l'avais aussi tourné sur « Utiliser HTML5 dans les formes » dans les Redoutables Paramètres généraux récemment. Si je décoche cela, le reCAPTCHA fonctionne sur Safari. Donc, cela indiquerait qu'il y a un problème avec votre implémentation de HTML5 dans les formulaires, peut-être que seules les surfaces lorsque le site utilise HTTPS.

3. Reportez-vous à ces liens ci-dessous pour plus de détails -

reCAPTCHA2.0 troubleshooting

reCAPTCHA Frequently asked questions

Google reCAPTCHA tutorial

+0

Je suis désolé, je ne comprends pas. Il n'y a rien avec un ID de 'captcha-form' n'importe où sur ma page. Je ne crée pas un formulaire HTML normal. C'est un 'dhtmlXForm'. De plus, j'ai lu cet article mais il n'y a pas de paramètre "Utiliser HTML5 dans les formulaires", qui doit être un paramètre plus ancien. J'ai ajouté une ** MISE À JOUR ** à la question originale. – gfrobenius

0

Je suis face à la même question sur mon site, dans mon C'est dans Firefox, apparemment parce que JavaScript est désactivé (même si c'est activé dans le navigateur!et j'ai testé sur 3 ordinateurs différents) Je le sais parce que parce que quand j'ai changé les paramètres de la reCaptcha pour supporter les navigateurs qui ne supportent pas Javascript, cela a résolu le problème pour moi. Pour cela, vous pouvez "naviguer vers le admin console et déplacer le curseur de préférence de sécurité sur" le plus facile pour les utilisateurs "Gardez à l'esprit qu'avec ce paramètre, reCAPTCHA ne pourra pas utiliser toutes ses fonctions de sécurité." comme dit dans reCAPTCHA Frequently asked questions

J'espère que cela aidera quelqu'un à réduire le problème.

PS: Je n'ai pas assez de réputation pour laisser un commentaire.