Widget:GOV-Test
Aus Altes Köln
Ajax-Variante mit wiki
Dies ist ein statischer Testinhalt, bevor die Inhalte geladen werden.
<script>
(function() {
const serverBaseURL = "https://gov.genealogy.net";
fetch('https://gov.genealogy.net/item/wikihtml/SCHERGJO54EJ')
.then(response => {
if (!response.ok) {
throw new Error(`HTTP-Fehler! Status: ${response.status}`);
}
return response.text();
})
.then(html => {
console.log('Geladener HTML-Inhalt:', html); // Debugging: Lade HTML-Inhalt in die Konsole
// Temporäres DOM-Element erstellen
const tempDiv = document.createElement('div');
tempDiv.innerHTML = html;
// Relativen Links den Server-Base-URL voranstellen
const links = tempDiv.querySelectorAll('a[href^="/"]');
links.forEach(link => {
link.href = serverBaseURL + link.getAttribute('href');
});
// Bilder-URLs anpassen
const images = tempDiv.querySelectorAll('img[src^="/"]');
images.forEach(img => {
img.src = serverBaseURL + img.getAttribute('src');
});
// Geladenen Inhalt in den Widget-Container einfügen
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = tempDiv.innerHTML;
})
.catch(error => {
console.error('Fehler beim Laden des Inhalts:', error);
// Fallback: Zeige eine Fehlermeldung im Widget
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = '
Fehler: Inhalte konnten nicht geladen werden.
';
}); })();
</script>
<style>
/* Styling für den Widget-Container */
#widget-container {
width: 100%; /* Volle Breite des Widgets */
max-width: 800px; /* Maximale Breite des Widgets */
margin: 20px auto; /* Zentriert auf der Seite */
padding: 10px; /* Abstand innerhalb des Containers */
border: 1px solid #ccc; /* Rahmen um den Container */
background-color: #f9f9f9; /* Hintergrundfarbe */
overflow: auto; /* Begrenzung für Inhalte */
}
/* Styling für Tabellen innerhalb des Widgets */
#widget-container table {
border-collapse: collapse;
width: 100%;
}
#widget-container td, #widget-container th {
border: 1px solid #ddd;
padding: 8px;
}
#widget-container th {
background-color: #f2f2f2;
text-align: left;
}
</style>
Variante: Einfacher iframe mit
Variante: responsiv mit
<style>
body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
}
.iframe-container {
width: 100%; /* Container hat immer die volle Breite des Viewports */
position: relative; /* Wichtig für absolute Positionierung */
padding-top: 56.25%; /* Seitenverhältnis 16:9 */
}
iframe {
position: absolute;
top: 0;
left: 0;
width: 100vw; /* Breite des Viewports */
height: calc(100vw * 0.5625); /* Höhe proportional zur Breite (16:9) */
transform-origin: top left; /* Skalierung startet oben links */
}
/* Media Queries für kleinere Bildschirme */
@media (max-width: 768px) {
iframe {
transform: scale(0.9); /* Skaliere den iframe-Inhalt */
}
}
@media (max-width: 480px) {
iframe {
transform: scale(0.8); /* Weitere Skalierung für kleine Geräte */
}
}
</style>
