(function () {
function isModal() {
try { return new URLSearchParams(location.search).get("modal") === "1"; }
catch (e) { return false; }
}
if (!isModal()) return;
// Klasse setzen
document.documentElement.classList.add("zl-modal-view");
// CSS: Chrome ausblenden + Produktlinks optisch deaktivieren + Basket-Overlay unterdrücken
const css = `
html.zl-modal-view #page-header,
html.zl-modal-view header#page-header,
html.zl-modal-view .top-bar,
html.zl-modal-view nav.navbar,
html.zl-modal-view .breadcrumbs,
html.zl-modal-view .breadcrumb,
html.zl-modal-view .category-description,
html.zl-modal-view .footer.container-max.d-print-none,
html.zl-modal-view footer {
display: none !important;
visibility: hidden !important;
height: 0 !important;
}
html.zl-modal-view body {
padding-top: 0 !important;
margin-top: 0 !important;
}
html.zl-modal-view .zl-link-disabled {
pointer-events: none;
cursor: default;
text-decoration: none !important;
}
/* Add-to-basket Overlay im Iframe komplett unterdrücken */
html.zl-modal-view #add-item-to-basket-overlay,
html.zl-modal-view #add-item-to-basket-overlay * {
display: none !important;
visibility: hidden !important;
pointer-events: none !important;
}
`;
const style = document.createElement("style");
style.setAttribute("data-zl-modal-css", "1");
style.appendChild(document.createTextNode(css));
document.head.appendChild(style);
// Falls Vue später nachrendert, per JS nachdrücken
function hideChrome() {
const selectors = [
"#page-header",
"header#page-header",
".top-bar",
"nav.navbar",
".breadcrumbs",
".breadcrumb",
".category-description",
".footer.container-max.d-print-none",
"footer"
];
selectors.forEach(sel => {
document.querySelectorAll(sel).forEach(el => {
el.style.setProperty("display", "none", "important");
el.style.setProperty("visibility", "hidden", "important");
el.style.setProperty("height", "0", "important");
});
});
}
hideChrome();
setTimeout(hideChrome, 200);
setTimeout(hideChrome, 800);
new MutationObserver(hideChrome).observe(document.documentElement, { childList: true, subtree: true });
// Produktlinks deaktivieren (Bild + Titel), keine Inception, aber Add-to-basket bleibt
function disableProductLinks(root = document) {
const selectors = [
".cmp-product-thumb .thumb-image a[href]",
".cmp-product-thumb a.thumb-title[href]"
];
root.querySelectorAll(selectors.join(",")).forEach(a => {
a.setAttribute("aria-disabled", "true");
a.setAttribute("tabindex", "-1");
a.classList.add("zl-link-disabled");
});
}
disableProductLinks();
document.addEventListener("click", function (e) {
const a = e.target.closest(".cmp-product-thumb a[href]");
if (!a) return;
// Add-to-basket NICHT blocken
if (e.target.closest("[data-testing='item-add-to-basket']")) return;
if (e.target.closest(".add-to-basket-lg-container")) return;
if (e.target.closest("button")) return;
// Versandkosten Modal im Iframe optional erlauben
if (a.getAttribute("href") === "#shippingscosts") return;
// Produktseiten blocken (endet typischerweise mit _12345/)
const href = a.getAttribute("href") || "";
if (/_\d+\/?$/.test(href)) {
e.preventDefault();
e.stopPropagation();
}
}, true);
new MutationObserver(() => disableProductLinks()).observe(document.body, { childList: true, subtree: true });
// Basket-Overlay ggf. entfernen, falls es doch im DOM landet
function killBasketOverlay() {
const ov = document.getElementById("add-item-to-basket-overlay");
if (ov) ov.remove();
}
killBasketOverlay();
new MutationObserver(killBasketOverlay).observe(document.body, { childList: true, subtree: true });
// Toast-Feedback: beim Add-to-basket Klick Signal an Parent senden (Modal bleibt offen)
document.addEventListener("click", function (e) {
const addClick =
e.target.closest(".add-to-basket-lg-container") ||
e.target.closest("[data-testing='item-add-to-basket']") ||
(e.target.closest("button") && (e.target.closest("button").innerText || "").toLowerCase().includes("warenkorb"));
if (!addClick) return;
setTimeout(() => {
window.parent.postMessage("zlAccessoryAdded", "*");
}, 300);
}, true);
})();
Anmelden
Jetzt registrieren
Hinweise zur Registrierung
Wir bieten Ihnen die Speicherung Ihrer persönlichen Daten in einem passwortgeschützten Kundenkonto an, sodass Sie bei Ihrem nächsten Einkauf nicht erneut Ihren Namen und Ihre Anschrift eingeben müssen.
Durch die Registrierung werden Ihre Adressdaten gespeichert.
Sie können Ihr Kundenkonto jederzeit löschen, melden Sie sich dafür bei dem Betreiber dieser Seite.
Beim nächsten Besuch benötigen Sie zum Aufrufen Ihrer persönlichen Daten lediglich Ihre E-Mail und Ihr Passwort.