J'utilise les champs hébergés BrainTree
https://developers.braintreepayments.com/guides/hosted -fields / aperçu / javascript / v3
Pour une passerelle de paiement.
Lorsque le formulaire de carte de crédit est chargé, l'utilisateur doit cliquer sur l'entrée pour commencer.
Mon client souhaite que la zone de saisie du long numéro de carte soit déjà active. Je ne peux pas comprendre comment faire cela car le formulaire est dans un iFrame pour des raisons de sécurité, et le nombre d'options dans la documentation ne semble pas couvrir la définition d'une zone de texte comme focus.
Suis-je en train de manquer quelque chose ici ou est-ce simplement impossible?
3 Réponses :
C'est le problème avec les iFrames. Vous pouvez focaliser l'iFrame manuellement, même avec ou sans délai, mais si le fournisseur iFrame n'a pas développé le formulaire pour se concentrer sur cet élément et ne fournit pas d'API postMessage, alors vous êtes essentiellement à court d'options car il est en dehors de votre sec bac à sable. Si cela était possible, la sécurité du navigateur serait compromise.
J'espérais avoir manqué quelque chose dans la documentation. Comme il permet aux rappels de base de changer de style, etc. Est-il possible de simuler une pression sur une touche TAB? Cela résoudrait également tous mes problèmes.
Ce que vous demandez n'est pas possible pour les iframes tiers arbitraires, mais l'API de Braintree semble l'autoriser en utilisant méthode focus () sur le HostedFieldInstance:
hostedFieldsInstance.focus('fieldname', function (focusErr) { if (focusErr) { console.error(focusErr); } });
Question de clôture car ce n'est pas possible.
Toutes les "solutions" se trompent en essayant de saper la sécurité des détails de la carte du client.