Hier der vollständige Code. Geändert ist nur resolveItemUrl(), dazu kommt die neue Hilfsfunktion languagePrefix(). Die Sprache wird aus dem URL-Präfix der Druckseite übernommen, z. B. /es/. html
(function () { function textOf(el) { return (el && el.textContent || "").replace(/\s+/g, " ").trim(); } // Sprachpräfix der aktuellen Seite ermitteln, z. B. "/es" bei /es/druckseite?item=123 // Standardsprache (ohne Präfix) liefert "". function languagePrefix() { var m = window.location.pathname.match(/^\/([a-z]{2})(?=\/|$)/i); return m ? "/" + m[1].toLowerCase() : ""; } function resolveItemUrl() { var match = window.location.search.match(/[?&]item=(\d+)/); if (!match) { return null; } return window.location.origin + languagePrefix() + "/a-" + match[1] + "/"; } function loadAccordion() { var url = resolveItemUrl(); if (!url) { return Promise.resolve(null); } return new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.onload = function () { if (xhr.status < 200 || xhr.status >= 400) { reject(new Error("item page " + xhr.status)); return; } var doc = new DOMParser().parseFromString(xhr.responseText, "text/html"); resolve(doc.querySelector(".phywe-item-accordion")); }; xhr.onerror = function () { reject(new Error("item page network error")); }; xhr.send(); }); } function parseItemBlocks(scope, withQuantity) { if (!scope) { return []; } var rows = scope.querySelectorAll(".itemslist .row.itemblocks"); var items = []; for (var i = 0; i < rows.length; i++) { var cols = rows[i].children; if (!cols.length) { continue; } var nameLink = cols[0].querySelector("a"); var numberLink = cols[1] ? cols[1].querySelector("a") : null; var item = { name: textOf(nameLink || cols[0]), mappedTo: textOf(numberLink) }; if (withQuantity && cols[2]) { var qty = parseInt(textOf(cols[2]).replace(/[^\d]/g, ""), 10); item.quantity = isNaN(qty) ? textOf(cols[2]) : String(qty); } if (item.name) { items.push(item); } } return items; } function fillTable(tableId, items, withQuantity) { var table = document.getElementById(tableId); if (!table || !items.length) { return; } var tbody = table.querySelector("tbody"); for (var i = 0; i < items.length; i++) { var tr = document.createElement("tr"); var nameTd = document.createElement("td"); nameTd.style.width = "80%"; nameTd.textContent = items[i].name; tr.appendChild(nameTd); var numberTd = document.createElement("td"); numberTd.textContent = items[i].mappedTo; tr.appendChild(numberTd); if (withQuantity) { var qtyTd = document.createElement("td"); qtyTd.textContent = items[i].quantity || ""; tr.appendChild(qtyTd); } tbody.appendChild(tr); } var wrapper = table.parentElement; while (wrapper && wrapper.className.indexOf("printtablediv") === -1) { wrapper = wrapper.parentElement; } if (wrapper) { wrapper.style.display = ""; } } function stepTitle(stepEl) { if (!stepEl) { return ""; } var titleEl = stepEl.querySelector(".card-header button div") || stepEl.querySelector(".card-header button"); return textOf(titleEl); } function setHeadline(tableId, title) { var headline = document.querySelector("#" + tableId + " .printtableheadline"); if (headline && title) { headline.textContent = title; } } function parseMedia(scope) { if (!scope) { return []; } var rows = scope.querySelectorAll(".itemslist .row.itemblocks"); var items = []; for (var i = 0; i < rows.length; i++) { var cols = rows[i].children; if (!cols.length) { continue; } var nameLink = cols[0].querySelector("a"); var fileLink = cols[1] ? cols[1].querySelector("a") : null; var item = { name: textOf(nameLink || cols[0]), mappedTo: textOf(fileLink || cols[1]), quantity: cols[2] ? textOf(cols[2]) : "" }; if (item.name) { items.push(item); } } return items; } function fillFromAccordion(accordion) { if (!accordion) { return; } var versucheStep = accordion.querySelector('[data-step="versuche"]'); var versuche = parseItemBlocks(versucheStep, false); setHeadline("print-versuche", stepTitle(versucheStep)); fillTable("print-versuche", versuche, false); var lieferumfangStep = accordion.querySelector('[data-step="lieferumfang"]'); var lieferumfang = parseItemBlocks(lieferumfangStep, true); fillTable("print-lieferumfang", lieferumfang, true); var zubehoer = accordion.querySelector('[data-step="zubehoer"]'); var sections = zubehoer ? zubehoer.querySelectorAll(".card-body") : []; var notwendig = []; var empfohlen = []; for (var i = 0; i < sections.length; i++) { var items = parseItemBlocks(sections[i], false); if (sections[i].querySelector(".text-red, .icon-warning-black")) { notwendig = items; } else if (sections[i].querySelector(".text-green, .icon-Mehrwert_black")) { empfohlen = items; } } fillTable("print-zubehoer-notwendig", notwendig, false); fillTable("print-zubehoer-empfohlen", empfohlen, false); var mediaStep = accordion.querySelector('[data-step="media"]'); var media = parseMedia(mediaStep); setHeadline("print-media", stepTitle(mediaStep)); fillTable("print-media", media, true); } function start() { var itemUrl = resolveItemUrl(); if (!itemUrl) { setTimeout(function () { window.print(); }, 2000); return; } loadAccordion() .then(function (accordion) { fillFromAccordion(accordion); }) .catch(function (err) { if (window.console && console.warn) { console.warn("Accordion konnte nicht geladen werden:", itemUrl, err); } }) .then(function () { setTimeout(function () { window.print(); }, 500); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", start); } else { start(); } })();
 

Données techniques


Ensemble de base pour TP de biochimie sur tableau vertical

Article n° : 45560-00

Fonction et applications

Pour travailler avec le système d’expériences complètes en chimie, des supports et des plaques sont nécessaires afin de constituer un montage expérimental. Avec cet ensemble de base, nous avons réuni un équipement de supports et de plaques pour une introduction à ce système.

Avantages

  • Gain de temps et manipulation simple : séchage facile des appareils, montage sûr, transport et stockage grâce aux goupilles élastiques ou à de puissants aimants.
  • Monter l’expérience une fois avec système enfichable ou aimants et la reprendre ensuite directement de l’armoire pour l’utiliser.
  • Plus de 10 dispositifs de fixation avec système enfichable et aimants disponibles.
  • Suspension dans le cadre pour expériences complètes (45500-00) en position verticale ou horizontale.
  • Le « cadre pour expériences complètes » n’est nécessaire qu’une seule fois pour de nombreux montages, car ceux-ci peuvent être soulevés complètement avec la plaque pour expériences complètes (45510-00) et remplacés par une autre expérience montée sur une telle plaque.
  • Grâce à ses pieds largement saillants, le cadre est très stable et supporte en général tous les montages sans sécurité supplémentaire.
  • Les pieds sont munis de larges patins en caoutchouc qui empêchent largement le glissement du cadre sur la surface choisie.
  • Pour une fixation ferme sur un support, les pieds possèdent des découpes latérales dans lesquelles on peut insérer une pince adaptée (02014-00).
  • Pour une fixation permanente du cadre sur un support, des vis peuvent être insérées dans les trous prévus dans les pieds.
  • La paroi arrière empêche l’entrée de lumière gênante dans les expériences complètes.

Caractéristiques techniques

  • 1 cadre pour expériences complètes 45500-00
  • 1 paroi arrière pour expériences complètes 45501-00
  • 1 plaque pour expériences complètes 45510-00
  • 3 supports de serrage, d = 18…25 mm, fixes 45520-00
  • 2 supports de serrage, d = 18…25 mm, orientables 45521-00
  • 2 supports de serrage, d = 8…10 mm, orientables 45522-00
  • 1 porte-appareils avec aimants de fixation 45525-00
  • 1 support pour appareils, variable 45526-00
  • 1 goupille élastique, 50 pièces 45530-00
  • 1 sangles de fixation universelles, 100 pièces 45535-00
  • 2 pinces 02014-00

Accessoires
Des accessoires supplémentaires requis, tels que blocs d’alimentation, appareils de mesure, table auxiliaire, produits chimiques, etc., ne sont pas inclus. Nous serons heureux de vous établir une offre.


PHYWE Systeme GmbH & Co. KG
Robert-Bosch-Breite 10 – 37079 Göttingen – Deutschland
www.phywe.com
Contact