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


leXsolar-EMobility Large

Article n° : LEX-1802

Fonction et Applications

Description

Ce produit enseigne aux étudiants les fondements physiques et techniques et les applications des différentes technologies de batteries. La question très actuelle de la mobilité électrique est explorée à l'aide d'un modèle de voiture électrique. Le dimensionnement et l'application des différents types de batteries sont des sujets tout aussi importants que la durée de vie ou les méthodes de charge. Les caractéristiques des différents types de batteries sont analysées à l'aide d'expériences qualitatives et quantitatives. Le produit est extensible avec un module de batterie au lithium-polymère et au plomb. Compte tenu des problèmes de stockage des énergies renouvelables, ces questions d'actualité devraient trouver leur place dans le programme scolaire

Expériences

La

loi d'Ohm

Connexion en série de résistances ohmiques

Connexion en

parallèle de résist

ances ohmiques

Tension nominale et capacité des sources de tension

Détection à quatre bornes

Résistance interne des sources de tension

Connexion en série des sources

de tension

La capacité d'un module de batterie

La

densité d'énergie des modules de batterie

L'

efficacité de Ri d'un module de batterie

Le rendement

total d'

un module de batterie

Comportement de la cellule lithium-polymère en fonction de la température

Le processus de charge d'un condensateur

Le processus de

décharge d'un condensateur

Caractéristiques I-V d'un module batterie NiMH simple

Caractéristiques I-V du module de batterie NiZn

Caractéristiques I-V du module de batterie LiFePo

Caractéristiques I-V du module de batterie au plomb

Caractéristiques I-V du module de batterie au lithium-polymère

Caractéristiques I-V du module batterie triple NiMH

Le processus de charge de la batterie NiMH

Processus de charge de la

batterie NiZn

Processus de charge de la

batterie LiFePo

Processus de charge de la

batterie au plomb

Processus de charge de la batterie au lithium-polymère

Processus de décharge d'un module de batterie

Production d'hydrogène dans la pile à hydrogène réversible

Courbe caractéristique de l'électrolyseur

Consommation d'hydrogène d'une pile à combustible

Courbe caractéristique de la pile à combustible

Le rendement de la pile à hydrogène

Fonctionnement de la voiture électrique avec plusieurs modules de batterie

Fonctionnement de la

voiture électrique avec la pile à combustible réversible

Les composants :

Liste des composants

1 x 1100-62 Module de potentiomètre 110 Ohm Pro

1 x 1118-09 Module de batterie NiMH 3xAAA Pro

1 x 1118-11 Module condensateur Pro

1 x 1801-07 Unité de base leXsolar-Base EMobility

1 x 1800-01 Module de résistance (triple) Pro

1 x 1800-03 Résistance élémentaire 1 Ohm

2 x 1800-05 Élément de fiche de résistance 10 Ohm

1 x 1800-08 Support de module de batterie 1xAAA Pro

1 x 1801-02 Modèle de voiture électrique

1 x 1801-06 Batterie LiFePo AAA

1 x 1802-02 Boîte 1802

1 x 1800-15 Eau distillée (100 ml)

1 x 1800-04 Résistance élément bouchon 100 Ohm

1 x L2-04-102 Pile NiZn AAA

1 x L2-06-067 Pile à combustible réversible

1 x L3-03-258 Fiche d'information mise en service initiale

1 x L3-01-013 Couvercle pour plateau

1 x L3-01-070 Insert 4E Energiespeicherbox 5002

1 x L3-03-166 Einräumplan 1802 EMobility Large

1 x L2-04-021 Batterie NiMH AAA

Extras nécessaires

1 x 9100-03 Module AV

1 x L2-06-012 Cordon de test noir 25 cm

1 x L2-06-013 Cordon de test rouge 25 cm

1 x L2-06-014 Cordon de test noir 50 cm

1 x L2-06-015 Cordon de test rouge 50 cm

1 x 9100-13 Module de chargeur

1 x L2-06-011 Multimètre numérique

Extras disponibles

1800-07 Lithium-polymère

L2-06-012 Cordon de test noir 25 cm

1 x L2-06-013 Cordon de test rouge 25 cm

1 x L2-06-014 Cordon de test noir 50 cm

1 x L2-06-015 Cordon de test rouge 50 cm

1 x 9100-13 Module de chargeur

1 x L2-06-011 Multimètre numérique

Extras disponibles

1800-07 Lithium-polymère


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