当从 onReady 方法调用时,Paypal Braintree 弹出窗口在 chrome 中被阻止请求权限。
下面是braintree.setup的onready函数
onReady: function(integration) {
console.log('Braintree is ready');
checkout = integration;
enablePaypalBtn();
}
下面是按钮代码
<button id="my-button-element" style="visibility:none"></button>
var checkout;
document.querySelector('#my-button-element').addEventListener('click',
function (event) {
event.preventDefault();
checkout.paypal.initAuthFlow();
}, false);
而如果我直接从控制台调用我的按钮元素单击事件,则弹出窗口会在未经许可的情况下显示。
最佳答案
全面披露:我在 Braintree 工作。如果您还有任何疑问,请随时联系support .
根据 Braintree's docs , initAuthFlow
必须作为用户点击事件的结果同步调用,否则 PayPal 流程弹出窗口将被浏览器自动阻止。您需要将 enablePaypalBtn()
绑定(bind)到用户点击操作。
另外,想提一下 Braintree 有一个更新的 Javascript 库,v3 .可以的话推荐migrating to the newest version .
关于javascript - Paypal Braintree pop 在 chrome 中被屏蔽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50095021/