Javascript 在使用Braintree';加载表单时,如何使浏览器关注长信用卡号字段;s托管字段

Javascript 在使用Braintree';加载表单时,如何使浏览器关注长信用卡号字段;s托管字段,javascript,braintree,Javascript,Braintree,我使用的是BrainTree托管字段 用于支付网关 加载信用卡表单时,用户必须单击输入开始 我的客户希望长卡号的输入框已经处于焦点位置。由于安全原因,表单位于iFrame中,因此我无法确定如何执行此操作,并且文档中的选项数量似乎不包括将文本区域设置为焦点 我是否遗漏了什么,或者这根本不可能?在处理iFrame时,这就是问题所在。您可以手动聚焦iFrame,即使有延迟或没有延迟,但是如果iFrame提供程序没有开发表单来聚焦该元素,并且没有提供postMessage API,那么您基本上没有选择

我使用的是BrainTree托管字段

用于支付网关

加载信用卡表单时,用户必须单击输入开始

我的客户希望长卡号的输入框已经处于焦点位置。由于安全原因,表单位于iFrame中,因此我无法确定如何执行此操作,并且文档中的选项数量似乎不包括将文本区域设置为焦点


我是否遗漏了什么,或者这根本不可能?

在处理iFrame时,这就是问题所在。您可以手动聚焦iFrame,即使有延迟或没有延迟,但是如果iFrame提供程序没有开发表单来聚焦该元素,并且没有提供postMessage API,那么您基本上没有选择,因为它在您的sec沙箱之外。如果这是可能的,那么浏览器的安全性基本上会受到影响。

对于任意第三方iFrame,您所要求的是不可能的,但是Braintree的API似乎允许通过在hostedFieldInstance上使用:

hostedFieldsInstance.focus('fieldname', function (focusErr) {
  if (focusErr) {
    console.error(focusErr);
  }
});

结束问题,因为这是不可能的


所有的“解决方案”都是在试图破坏客户卡详细信息的安全性方面出错。

我希望我在文档中遗漏了一些东西。由于它允许基本回调更改样式等,是否可以模拟按TAB键?这也会解决我遇到的所有问题。