Estoy tratando de deshabilitar el botón de paypal en VueJs usando JavaScript nativo Entonces, cuando se cargó el iframe de paypal, estoy tratando de hacerlo así:
methods: { async initPaypal() { this.$store.dispatch('app/clearMessage') this.isLoading = true try { const { payments } = await paymentService.getPaymentContext(this.group) const widgetParameters = payments[payments.length - 1]?.additionalDatas?.PAYMENT_WIDGET_INFORMATION.widgetParameters if (widgetParameters) { this.client = new adeocookie.CookiePgwClient(widgetParameters, 'paypal-container') this.client.initialize().then(() => { console.log('loaded') this.client.render() this.isLoading = false // to disable button const iframe = document.getElementsByTagName('iframe')[0] iframe.style.pointerEvents = 'none' })Pero no funciona. He intentado mostrar en la consola si se cargó el iframe y está bien.
Entonces, ¿cómo puedo deshabilitar este iframe e idealmente solo el div que contiene el rol del botón?
Gracias
Reconsidera lo que estás haciendo. Con el SDK JS de PayPal actual, no hay motivo para comprobar los iframes. Si necesita deshabilitar los botones cuando se inicializan, puede hacer que su contenedor div comience oculto (display:none) simplemente codificándolo para que comience como tal antes de que se ejecute cualquier código de botón, o en lugar de ocultarlo, use el método de los botones. de actions.disable() (que no se oculta) de onInit , como se documenta en Validar entrada de usuario .
Aquí hay un ejemplo de renderizado retrasado con display:none...
<div id="paypal-button-container"></div> <script> document.querySelector('#paypal-button-container') .style.display = 'none'; paypal.Buttons().render('#paypal-button-container'); document.querySelector('#myRadioField') .addEventListener('click', function() { document.querySelector('#paypal-button-container') .style.display = 'block'; }); </script>