;(() => {
// Create iframe element
const createIframe = (options) => {
const iframe = document.createElement("iframe")
iframe.src = options.src
iframe.style.width = options.width || "100%"
iframe.style.height = options.height || "700px"
iframe.style.border = "none"
iframe.style.overflow = "hidden"
return iframe
}
// Handle iframe resizing
const setupIframeResizing = (iframe) => {
window.addEventListener("message", (event) => {
// In production, validate event.origin
if (event.data && event.data.type === "resize") {
iframe.style.height = `${event.data.height}px`
}
})
}
// Initialize the embed
const init = () => {
const scripts = document.getElementsByTagName("script")
const script = scripts[scripts.length - 1]
const options = {
src: script.getAttribute("data-iframe-src"),
width: script.getAttribute("data-iframe-width"),
height: script.getAttribute("data-iframe-height"),
}
const iframe = createIframe(options)
script.parentNode.insertBefore(iframe, script)
if (options.height === "true") {
setupIframeResizing(iframe)
}
}
// Run initialization
if (document.readyState === "complete") {
init()
} else {
window.addEventListener("load", init)
}
})()