Bin nicht 100% sicher ob es funktioniert
Gehe auf die Seite, die das iFrame-Widget enthält.
- Füge ein neues Widget vom Typ Quelltext hinzu.
- Füge den kompletten Code dort ein
<style>
/* Einfaches Basis-Styling für den Platzhalter */
.zp-preview-iframe-placeholder {
display: none;
width: 100%;
height: 350px;
background-color: #f8f9fa;
border: 2px dashed #007bff;
border-radius: 6px;
align-items: center;
justify-content: center;
text-align: center;
padding: 20px;
box-sizing: border-box;
font-family: sans-serif;
color: #333333;
margin: 15px 0;
}
.zp-preview-iframe-placeholder p {
margin: 0 0 5px 0;
font-size: 16px;
font-weight: bold;
color: #007bff;
}
.zp-preview-iframe-placeholder span {
font-size: 13px;
color: #666666;
}
/* Steuerung über JavaScript-Klasse */
body.is-zeta-preview .zp-preview-iframe-placeholder {
display: flex;
}
body.is-zeta-preview iframe.preview-blocked {
display: none !important;
}
</style>
<script>
(function() {
function blockPreviewIframes() {
const isLocalhost = window.location.hostname === "localhost"
window.location.hostname === "127.0.0.1";
const isLocalFile = window.location.protocol === "file:";
if (isLocalhost
isLocalFile) {
document.body.classList.add("is-zeta-preview");
const iframes = document.querySelectorAll("iframe");
iframes.forEach(function(iframe) {
const src = iframe.getAttribute("src");
if (src && (src.startsWith("http://")
src.startsWith("https://")) && !iframe.classList.contains("preview-blocked")) {
const placeholder = document.createElement("div");
placeholder.className = "zp-preview-iframe-placeholder";
placeholder.innerHTML = `
<div>
<p>🔄 iFrame-Vorschau blockiert</p>
<span>Wird erst nach dem Veröffentlichen geladen.</span>
</div>
`;
iframe.parentNode.insertBefore(placeholder, iframe);
iframe.setAttribute("data-original-src", src);
iframe.setAttribute("src", "about:blank");
iframe.classList.add("preview-blocked");
}
});
}
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", blockPreviewIframes);
} else {
blockPreviewIframes();
}
})();
</script>
Der Code blockiert in der lokalen Zeta-Vorschau das automatische Laden externer iFrames und zeigt stattdessen einen statischen Platzhalter an. Dadurch werden massenhafte Server-Aufrufe während der Bearbeitung verhindert, während auf der veröffentlichten Website alles wie gewohnt lädt.
Ungetestet, versuche es einfach mal
Grüße
Armin /AWS)