我的Paypal集成正在使用checkout.js库。我在控制台中收到以下错误。
Uncaught TypeError: Cannot read property 'querySelector' of null
at setup (index.js:265)
第265行看起来像
var button = document.getElementById('buttonContainer').querySelector('button');
我的脚本如下,并成功加载Paypal结帐按钮。由于javascript错误,无法单击该按钮。
<div id="paypal-button"></div>
<script>
paypal.Button.render({
env: 'sandbox', // Optional: specify 'sandbox' environment
payment: function(resolve, reject) {
var CREATE_PAYMENT_URL = /paypal/create';
paypal.request.post(CREATE_PAYMENT_URL)
.then(function(data) { resolve(data.paymentID); })
.catch(function(err) { reject(err); });
},
onAuthorize: function(data) {
var EXECUTE_PAYMENT_URL = /paypal/execute';
paypal.request.post(EXECUTE_PAYMENT_URL,
{ paymentID: data.paymentID, payerID: data.payerID })
.then(function(data) {
var orderNumber = data.paymentCart;
})
.catch(function(err) {
alert('There was an error executing the payment, please try again');
});
}
}, '#paypal-button');
</script>
昨天整合似乎也很好。
答案 0 :(得分:0)
错误说的是: document.getElementById(&#39; buttonContainer&#39;)为空。
换句话说,我们没有找到任何id为buttonContainer的元素。 因此,它无法在其中执行querySelector。
在共享代码片段的情况下,我们无法提供帮助,因为我们无法确定您是否已定义按钮,以及在加载此按钮时是否可以访问该按钮。
根据经验,我最好的猜测是,按钮可能会在稍后阶段动态加载,并且在您尝试检索按钮时尚未就绪。
答案 1 :(得分:0)
该错误必定是由Paypal库更新引起的,因为错误不再发生。