Javascript Paypal checkout.js-无法读取属性';查询选择器';空的

Javascript Paypal checkout.js-无法读取属性';查询选择器';空的,javascript,paypal,express-checkout,Javascript,Paypal,Express Checkout,我的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 checkout按

我的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 checkout按钮。由于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>

paypal.Button.render({
env:'sandbox',//可选:指定'sandbox'环境
付款:功能(解决、拒绝){
var CREATE_PAYMENT_URL=/paypal/CREATE';
paypal.request.post(创建支付URL)
.then(函数(数据){resolve(data.paymentID);})
.catch(函数(err){reject(err);});
},
onAuthorize:函数(数据){
var EXECUTE_PAYMENT_URL=/paypal/EXECUTE';
paypal.request.post(执行支付URL,
{paymentID:data.paymentID,payerID:data.payerID})
.then(功能(数据){
var orderNumber=data.paymentCart;
})
.catch(函数(err){
警报(“执行付款时出错,请重试”);
});
}
}“#贝宝按钮”);

昨天集成似乎也运行良好。

错误说明: document.getElementById('buttonContainer')为空

换句话说,我们没有找到id为buttonContainer的元素。 因此,它无法在其内部执行querySelector

由于共享了代码片段,我们无法真正提供帮助,因为我们无法查看您是否定义了按钮,以及在加载此按钮时是否可以访问该按钮


根据经验,我的最佳猜测是,按钮可能在稍后阶段动态加载,而在您尝试检索它时它还没有准备好。

该错误一定是由于Paypal库的更新导致的,因为错误不再发生。

是否有id为=“buttonContainer”的元素在DOM中?是否检查了是否有ID为buttonContainer的元素?不,没有。Paypal文档中没有提到它。paypal.Button.render()的第二个参数是pay按钮的容器,这不是问题所在,因为它被正确呈现。很抱歉,我应该在我的问题中更加明确。我理解Javascript错误及其发生的原因。我的问题是,缺少的元素在中没有提到(假设Paypal注入了它?),而这段代码昨天就已经运行了。