
In der Maag Halle läuft derzeit die faszinierende Erfolgsausstellung „Die Legende der Titanic“ – ein Erlebnis, das Geschichte lebendig werden lässt. Cornelia Stutz nimmt uns mit auf eine unvergessliche Reise an Bord des wohl berühmtesten Schiffs der Welt .Mit detaillierter Ausstattung, nachgebildeten Räumen und originalen Exponaten der Schwesternschiffe fühlt man sich, als wäre man selbst Teil der ersten und letzten Fahrt der Titanic. In der immersiven Show begleitet man das majestätische Schiff vom Ablegen im Hafen von Southampton bis hin zum tragischen Untergang im eisigen Nordatlantik – ein emotionales Erlebnis zwischen Glanz, Hoffnung und Schicksal.
Jetzt reinhören – und tauch ein in eine Reise zurück in die Vergangenheit, auf die legendäre Titanic.
:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,”Helvetica Neue”,Arial;}
body{margin:0;padding:24px;background:#f7f9f9;color:#0b0b0b}
header{margin-bottom:12px}
h1{font-size:18px;margin:0 0 6px}
p.lead{margin:0 0 18px;color:#3b3b3b}
.card{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.06);max-width:900px}
table{width:100%;border-collapse:collapse}
td{padding:8px;border-bottom:1px solid #eee}
td.key{width:38%;font-weight:600;color:#333}
.actions{margin-top:12px;display:flex;gap:8px}
button{padding:8px 12px;border-radius:6px;border:1px solid #ccc;background:#fff;cursor:pointer}
button.primary{background:#006600;color:#fff;border-color:transparent}
small.note{display:block;margin-top:10px;color:#6a6a6a}
Client-Info Tool
Zeigt Browser‑ und Verbindungsinfos an — es werden lokal **keine** Daten gespeichert.
Hinweis: Dieses Tool speichert **nichts** lokal (kein localStorage, kein Server). Falls Sie die öffentliche IP anzeigen, wird dafür ein externer Dienst abgefragt — dieser Dienst kann die Anfrage protokollieren.
// Keine Speicherung: bewusst kein localStorage/sessionStorage/cookies writing
function addRow(key, value){
const tbody = document.querySelector(‘#info-table tbody’);
const tr = document.createElement(‘tr’);
const tdKey = document.createElement(‘td’); tdKey.className = ‘key’; tdKey.textContent = key;
const tdVal = document.createElement(‘td’); tdVal.className = ‘val’; tdVal.textContent = value === undefined || value === null ? ” : value;
tr.appendChild(tdKey); tr.appendChild(tdVal);
tbody.appendChild(tr);
}
function clearTable(){
document.querySelector(‘#info-table tbody’).innerHTML = ”;
}
function formatConnection(conn){
if(!conn) return ‘nicht verfügbar’;
try{
return [‘effectiveType: ‘+ conn.effectiveType, ‘downlink: ‘+ conn.downlink, ‘rtt: ‘+ conn.rtt, ‘saveData: ‘+ conn.saveData].join(‘ | ‘);
}catch(e){return ‘nicht auslesbar’}
}
function showClientInfo(){
clearTable();
const nav = navigator;
addRow(‘User-Agent’, nav.userAgent || ‘nicht verfügbar’);
addRow(‘Platform’, nav.platform || ‘nicht verfügbar’);
addRow(‘Browser-Sprachen’, (nav.languages || []).join(‘, ‘) || nav.language || ‘nicht verfügbar’);
addRow(‘Cookies erlaubt’, nav.cookieEnabled);
addRow(‘Do Not Track’, nav.doNotTrack || nav.msDoNotTrack || ‘nicht gesetzt’);
addRow(‘Online’, nav.onLine ? ‘ja’ : ‘nein’);
addRow(‘Screen (WxH)’, (screen.width || ‘?’) + ‘ × ‘ + (screen.height || ‘?’));
addRow(‘Viewport (CSS)’, window.innerWidth + ‘ × ‘ + window.innerHeight);
addRow(‘Zeitzone’, Intl.DateTimeFormat().resolvedOptions().timeZone || ‘nicht verfügbar’);
addRow(‘Connection’, formatConnection(nav.connection || nav.mozConnection || nav.webkitConnection));
addRow(‘HardwareConcurrency (CPU)’, nav.hardwareConcurrency || ‘nicht verfügbar’);
addRow(‘Device Memory (GB, geschätzt)’, nav.deviceMemory || ‘nicht verfügbar’);
addRow(‘Touch unterstützt’, (‘ontouchstart’ in window) ? ‘ja’ : ‘nein’);
addRow(‘Dozenten-Info (Cookies/Storage)’, ‘keine Speicherung durch dieses Tool’);
}
document.getElementById(‘refresh’).addEventListener(‘click’, showClientInfo);
document.getElementById(‘copy’).addEventListener(‘click’, async ()=>{
const rows = […document.querySelectorAll(‘#info-table tbody tr’)];
const text = rows.map(r => r.children[0].textContent+’: ‘+r.children[1].textContent).join(‘n’);
try{
await navigator.clipboard.writeText(text);
alert(‘Informationen in die Zwischenablage kopiert’);
}catch(e){
alert(‘Konnte nicht kopieren: ‘+e.message);
}
});
// Optional: öffentliche IP über externen Dienst abfragen
// WICHTIG: externe Dienste sehen die anfragende IP und können sie protokollieren.
let ipShown = false;
document.getElementById(‘showip’).addEventListener(‘click’, async function(){
if(ipShown) return;
this.disabled = true; this.textContent = ‘IP wird abgefragt…’;
try{
// Standard: ipify. Sie können hier einen anderen Dienst einsetzen.
const r = await fetch(‘https://api.ipify.org?format=json’);
if(!r.ok) throw new Error(‘Netzwerkfehler’);
const j = await r.json();
addRow(‘Öffentliche IP (via api.ipify.org)’, j.ip || ‘nicht ermittelt’);
ipShown = true;
this.textContent = ‘Öffentliche IP angezeigt’;
}catch(err){
alert(‘Öffentliche IP konnte nicht abgefragt werden: ‘+err.message);
this.textContent = ‘Öffentliche IP anzeigen (optional)’;
} finally{
this.disabled = false;
}
});
// Autostart
showClientInfo();