(function () {
function initializeFeedbackSwap() {
var widgets = document.querySelectorAll('[data-feedback-ssr-widget]');
for (var i = 0; i < widgets.length; i++) {
var widget = widgets[i];
if (widget.getAttribute('data-feedback-swap-initialized') === 'true') {
continue;
}
var serverContent = widget.querySelector('[data-feedback-ssr]');
var clientShell = widget.querySelector('[data-feedback-client-shell]');
if (!clientShell) {
continue;
}
widget.setAttribute('data-feedback-swap-initialized', 'true');
(function (currentWidget, currentServerContent, currentClientShell) {
var observer = null;
var readyReceived = false;
function parseCount() {
var countElement = currentClientShell.querySelector('.feedback-average-count');
var text = countElement ? (countElement.textContent || '') : '';
var match = text.match(/\(\s*(\d+)\s*\)/);
return match ? parseInt(match[1], 10) : null;
}
function clientIsComplete(expectedCount) {
var actualCount = parseCount();
var loading = currentClientShell.querySelector('.loading-hint');
if (actualCount === null || loading) {
return false;
}
if (typeof expectedCount === 'number' && actualCount !== expectedCount) {
return false;
}
return true;
}
function swapToClient(expectedCount) {
if (!readyReceived || !clientIsComplete(expectedCount)) {
return;
}
currentClientShell.style.display = '';
currentClientShell.removeAttribute('aria-hidden');
if (currentServerContent && currentServerContent.parentNode) {
currentServerContent.parentNode.removeChild(currentServerContent);
}
if (observer) {
observer.disconnect();
}
}
currentClientShell.setAttribute('aria-hidden', 'true');
currentClientShell.addEventListener('feedback:client-ready', function (event) {
var detail = event && event.detail ? event.detail : {};
var count = Number(detail.count);
if (!isFinite(count) || count < 0) {
return;
}
readyReceived = true;
swapToClient(count);
});
/*
* Conservative fallback for cached client bundles:
* never reveal the client shell merely because markup exists.
* It must contain a real numeric count and no loading hint.
*/
observer = new MutationObserver(function () {
if (readyReceived) {
swapToClient(parseCount());
}
});
observer.observe(currentClientShell, {
childList: true,
subtree: true,
characterData: true
});
})(widget, serverContent, clientShell);
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initializeFeedbackSwap);
} else {
initializeFeedbackSwap();
}
})();
(function () {
function parseReviewCount(shell) {
var countElement = shell.querySelector('.feedback-average-count');
var text = countElement ? (countElement.textContent || '') : '';
var match = text.match(/\(\s*(\d+)\s*\)/);
if (match) {
return parseInt(match[1], 10);
}
if (countElement) {
countElement.textContent = ' (0)';
}
return 0;
}
function updateEmptyState(widget, shell) {
if (!shell) {
return;
}
var count = parseReviewCount(shell);
var isLoading = !!shell.querySelector('.loading-hint');
var stars = shell.querySelector('.feedback-stars-average');
var bars = shell.querySelector('.feedback-bars');
var message = shell.querySelector('.feedback-empty-state');
var row = shell.querySelector('.row.my-2');
var leftColumn = row ? row.querySelector('.col-sm-6') : null;
if (count === 0 && !isLoading) {
if (stars) {
stars.style.display = 'none';
}
if (bars) {
bars.style.display = 'none';
}
if (!message && leftColumn) {
message = document.createElement('p');
message.className = 'feedback-empty-state text-muted mb-0';
message.textContent = widget.getAttribute('data-feedback-empty-state-text') ||
'Für diesen Artikel wurden noch keine Kundenrezensionen verfasst.';
leftColumn.insertBefore(message, leftColumn.firstChild);
}
} else if (count > 0) {
if (stars) {
stars.style.display = '';
}
if (bars) {
bars.style.display = '';
}
if (message && message.parentNode) {
message.parentNode.removeChild(message);
}
}
}
function initializeEmptyStates() {
var widgets = document.querySelectorAll('[data-feedback-ssr-widget]');
for (var i = 0; i < widgets.length; i++) {
var widget = widgets[i];
if (widget.getAttribute('data-feedback-empty-state-initialized') === 'true') {
continue;
}
widget.setAttribute('data-feedback-empty-state-initialized', 'true');
(function (currentWidget) {
var observer = new MutationObserver(function () {
var shell = currentWidget.querySelector('[data-feedback-client-shell]') || currentWidget;
updateEmptyState(currentWidget, shell);
});
observer.observe(currentWidget, {
childList: true,
subtree: true,
characterData: true
});
var shell = currentWidget.querySelector('[data-feedback-client-shell]') || currentWidget;
updateEmptyState(currentWidget, shell);
})(widget);
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initializeEmptyStates);
} else {
initializeEmptyStates();
}
})();
{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.mephisto-tools.com\/leiter\/trittleiter\/2-stufen_55002_13289#product","name":"Aluminium Leiter 2 Stufen ohne Griff","url":"https:\/\/www.mephisto-tools.com\/leiter\/trittleiter\/2-stufen_55002_13289","description":"Trittleiter, Klappleiter, Stufenleiter, Haushaltsleiter, ohne B\u00fcgel","sku":"55002","productID":"55002","brand":{"@type":"Brand","name":"Mephisto"},"category":"Leiter > Trittleiter","image":["https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Aluminium-Leiter-2-Stufen-ohne-Griff-55002-Artikelbilder-2024.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Aluminium-Leiter-2-Stufen-ohne-Griff-55002-Artikelbilder-20246.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Aluminium-Leiter-2-Stufen-ohne-Griff-55002-Artikelbilder-20247.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Aluminium-Leiter-2-Stufen-ohne-Griff-55002-Artikelbilder-20248.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Mephisto-Aluminiumleiter-Trit9.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Mephisto-Aluminiumleiter-Trit10.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Mephisto-Aluminiumleiter-Trit11.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Mephisto-Aluminiumleiter-Tritt-additional.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Mephisto-Aluminiumleiter-Tritt-additional-v2.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/55002\/full\/Mephisto-Aluminiumleiter-Tritt-additional4.jpg"],"gtin13":"4251059781334","offers":{"@type":"Offer","@id":"https:\/\/www.mephisto-tools.com\/leiter\/trittleiter\/2-stufen_55002_13289#offer","price":"35.00","priceCurrency":"EUR","availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","url":"https:\/\/www.mephisto-tools.com\/leiter\/trittleiter\/2-stufen_55002_13289","seller":{"@type":"Organization","name":"Four & More GmbH","@id":"https:\/\/www.mephisto-tools.com\/#organization","url":"https:\/\/www.mephisto-tools.com\/","hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","returnPolicyCategory":"https:\/\/schema.org\/MerchantReturnFiniteReturnWindow","merchantReturnDays":14,"returnMethod":"https:\/\/schema.org\/ReturnByMail","returnFees":"https:\/\/schema.org\/ReturnFeesCustomerResponsibility","refundType":"https:\/\/schema.org\/FullRefund","@id":"https:\/\/www.mephisto-tools.com\/#merchant-return-policy","applicableCountry":"DE","returnPolicyCountry":"DE","merchantReturnLink":"https:\/\/www.mephisto-tools.com\/widerrufsrecht\/"}}},"aggregateRating":{"@type":"AggregateRating","ratingValue":5,"reviewCount":1,"bestRating":5,"worstRating":1},"review":[{"@type":"Review","author":{"@type":"Person","name":"Giulia"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5,"worstRating":1},"reviewBody":"Hab die 2-Stufen-Trittleiter jetzt seit ein paar Wochen im Einsatz. Stabil, leicht und superpraktisch. Sie steht im Schlafzimmer in der kleinen Nische zwischen Wand und Schrank \u2013 passt da perfekt rein. Einziger Nachteil: Wenn ich sie im Vorratsraum brauche, muss ich sie immer holen. Vielleicht bestell ich mir einfach noch eine zweite.","datePublished":"2025-10-09","name":"Praktisch, stabil \u2013 und passt perfekt in die Nische"}]}
Praktisch, stabil – und passt perfekt in die Nische
Hab die 2-Stufen-Trittleiter jetzt seit ein paar Wochen im Einsatz. Stabil, leicht und superpraktisch. Sie steht im Schlafzimmer in der kleinen Nische zwischen Wand und Schrank – passt da perfekt rein. Einziger Nachteil: Wenn ich sie im Vorratsraum brauche, muss ich sie immer holen. Vielleicht bestell ich mir einfach noch eine zweite.
Giulia