(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\/zubehoer\/werkstattwagen\/rueckwand_72115_13591#product","name":"R\u00fcckwand aus Lochblech f\u00fcr den Mephisto Werkzeugwagen \"Big Black\" 71015","url":"https:\/\/www.mephisto-tools.com\/zubehoer\/werkstattwagen\/rueckwand_72115_13591\/","description":"Hier finden Sie unsere unter anderem Werkstattwagen-Zusatzteile von Mephisto und umfangreiche Auswahl an Zubeh\u00f6r f\u00fcr Freizeitmechaniker","sku":"72115","productID":"72115","brand":{"@type":"Brand","name":"Mephisto"},"category":"Zubehoer > Werkstattwagen","image":["https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9921-Rueckwand.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9921-2.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Rueckwand-aus-Lochblech-fuer-den-Mephisto-Werkzeugwagen--Big-Black--71015-72115-72115-Detail.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9924.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9909.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9911.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9892.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9895.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9899.jpg","https:\/\/images.mephisto-tools.com\/item\/images\/72115\/full\/Mesh-Wall-for-71015-72115-IMG-9897.jpg"],"gtin13":"4251059786773","offers":{"@type":"Offer","@id":"https:\/\/www.mephisto-tools.com\/zubehoer\/werkstattwagen\/rueckwand_72115_13591#offer","price":"69.00","priceCurrency":"EUR","availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","url":"https:\/\/www.mephisto-tools.com\/zubehoer\/werkstattwagen\/rueckwand_72115_13591\/","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":"Anonymer K\u00e4ufer"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5,"worstRating":1},"reviewBody":"Das Teil passt. Wie immer stimmt das Preis-Leistungs-Verh\u00e4ltnis. Alles bestens!","datePublished":"2026-06-30","name":"Alles prima"}]}
Alles prima
Das Teil passt. Wie immer stimmt das Preis-Leistungs-Verhältnis. Alles bestens!
Anonymer Käufer