Javascript 使用onOpen()函数填写PayPal订单脚本

Javascript 使用onOpen()函数填写PayPal订单脚本,javascript,html,paypal,Javascript,Html,Paypal,我正在尝试在我的站点上实现PayPal SDK,并认为这应该可以实现: <body onload="writeOrderCode()"> 您没有向我们展示您的函数,或者它在页面DOM中写入了什么,因此很难提供任何具体的指导 但这里有一个有效的例子: function loadAsync(url, callback) { var s = document.createElement('script'); s.setAttribute('src', url)

我正在尝试在我的站点上实现PayPal SDK,并认为这应该可以实现:

<body onload="writeOrderCode()">

您没有向我们展示您的函数,或者它在页面DOM中写入了什么,因此很难提供任何具体的指导

但这里有一个有效的例子:

function loadAsync(url, callback) {
  var s = document.createElement('script');
  s.setAttribute('src', url); s.onload = callback;
  document.head.insertBefore(s, document.head.firstElementChild);
}

loadAsync('https://www.paypal.com/sdk/js?client-id=sb&currency=USD', function() {
  paypal.Buttons({

    // Set up the transaction
    createOrder: function(data, actions) {
        return actions.order.create({
            purchase_units: [{
                amount: {
                    value: '0.01'
                }
            }]
        });
    },

    // Finalize the transaction
    onApprove: function(data, actions) {
        return actions.order.capture().then(function(details) {
            // Show a success message to the buyer
            alert('Transaction completed by ' + details.payer.name.given_name);
        });
    }

  }).render('body');
});

如果您需要专门用于此加载的完整软件包,可以使用。

请创建一个感谢示例!这并不完全符合我的想法,但可能是一个更好的方法。我需要学习更多关于如何使用点语法以及如何从JS创建HTML对象的知识。如果您能够从一开始就在SDK中包含标记,那么您可能不需要像loadAsync这样的函数。查看您的
函数writeOrderCode(x)
,这毫无意义——您不应该将JS写入这样的元素中,或者引用一个变量,如
buttonColor
,如果它在范围内,则填充你的
x
角色。你是正确的。我最终发现我可以在按钮定义中使用JS逻辑。我错误地认为在
paypal.Buttons({})中添加任何额外的内容
会把事情搞砸。使用按钮描述符和x只是个例子。谢谢你的评论!