var iframeLoaded = false; function runJavaScriptOnECommerence(url, PaymentIntentToken) { // Create a div element var divElement = document.createElement('div'); // Set the style properties for the div to make it a red square in the middle of the screen divElement.style.width = '50%'; divElement.style.height = '50%'; divElement.style.background = 'transparent'; divElement.style.position = 'absolute'; divElement.style.top = '50%'; divElement.style.left = '50%'; divElement.style.transform = 'translate(-50%, -50%)'; divElement.id = "stripeDiv"; // Create a close button var closeButton = document.createElement('button'); closeButton.innerHTML = 'X'; closeButton.style.position = 'absolute'; closeButton.style.top = '10px'; closeButton.style.right = '10px'; closeButton.style.background = 'red'; closeButton.style.color = 'white'; closeButton.style.border = 'none'; closeButton.style.borderRadius = '50%'; closeButton.style.width = '30px'; closeButton.style.height = '30px'; closeButton.style.cursor = 'pointer'; closeButton.style.zIndex = '1001'; // Ensure the button is on top of everything closeButton.onclick = function() { document.getElementById('stripeDiv').remove(); }; divElement.appendChild(closeButton); var iframeElement = document.createElement('iframe'); iframeElement.id = "stripeIframe"; iframeElement.src = url + '/Payment/PaymentStripe/checkout.html'; iframeElement.onload = function() { iframeElement.contentWindow.postMessage({ paymentIntentToken: PaymentIntentToken, url : url }, '*'); }; divElement.appendChild(iframeElement); iframeElement.style.width = '100%'; iframeElement.style.height = '100%'; iframeElement.style.position = 'absolute'; iframeElement.style.top = '0'; iframeElement.style.left = '0'; iframeElement.style.zIndex = '1000'; // Ensure the iframe is behind the button document.body.appendChild(divElement); window.addEventListener('message', receiver, false); } function closeStripeWindowonFinish() { var existingDiv = document.getElementById('stripeDiv'); if (existingDiv) { existingDiv.remove(); } } function receiver(e) { try { if (e.data['unique'] != "true") { return; } } catch (e) { return; } if (e.data['timestamp'] != null) { var timestamp = e.data['timestamp']; } e.data['unique'] = "false"; if (e.data['responseData'] == "init") { iframeLoaded = true; return; } }