Altes Köln

Widget:GOV-Test: Unterschied zwischen den Versionen

Aus Altes Köln
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
<script>
<script>
     (function () {
     (function () {
         const fetchURL = "https://gov.genealogy.net/item/wikihtml/SCHERGJO54EJ";
         const fetchURL = "https://gov.genealogy.net/item/wikihtml/<!--{$GOVID|escape:'url'}-->";
         const baseURL = "https://gov.genealogy.net";
         const baseURL = "https://gov.genealogy.net";


Zeile 61: Zeile 61:
                     object {
                     object {
                         max-width: 100%;
                         max-width: 100%;
                         height: auto;
                         height: 400px; /* Feste Höhe */
                         display: block;
                         display: block;
                         margin: 0;
                         margin: 0;
Zeile 81: Zeile 81:
                 content.innerHTML = html;
                 content.innerHTML = html;


                 // Relative Pfade anpassen
                 // 1) Passe width und height in <object> an
                 const links = content.querySelectorAll('a[href^="/"]');
                 const objects = content.querySelectorAll('object[data^="https://www.genealogy.net/viewer-js/"]');
                 links.forEach(link => {
                 objects.forEach(obj => {
                     link.href = baseURL + link.getAttribute('href');
                     obj.setAttribute('width', '400'); // Setze Breite auf 400
                    obj.setAttribute('height', '400'); // Setze Höhe auf 400
                 });
                 });


                 const images = content.querySelectorAll('img[src^="/"]');
                // 2) Passe <a> und <img> für den relationshipGraph an
                 images.forEach(img => {
                 const imageLinks = content.querySelectorAll('a[href*="relationshipGraph"]');
                     img.src = baseURL + img.getAttribute('src');
                 imageLinks.forEach(link => {
                     // Passe das <a>-Tag an die Base-URL an
                    const originalHref = link.getAttribute('href');
                    link.setAttribute('href', baseURL + originalHref);
 
                    // Passe das <img>-Tag im <a>-Tag an
                    const img = link.querySelector('img');
                    if (img) {
                        const originalSrc = img.getAttribute('src');
                        img.setAttribute('src', baseURL + originalSrc + "?full-size=1"); // Absoluten Pfad setzen
                        img.setAttribute('width', '80%'); // Breite auf 80% setzen
                    }
                 });
                 });


                 const objects = content.querySelectorAll('object[data^="/"]');
                // 3) Füge Base-URL zu allen relativen <a> hinzu
                 objects.forEach(obj => {
                 const allLinks = content.querySelectorAll('a[href^="/"]');
                     obj.data = baseURL + obj.getAttribute('data');
                 allLinks.forEach(link => {
                     const originalHref = link.getAttribute('href');
                    link.setAttribute('href', baseURL + originalHref);
                 });
                 });


                 // Spezielle Anpassung für die Karte
                 // 4) Füge Base-URL zu allen relativen <img> hinzu
                 const mapObject = content.querySelector("object");
                 const allImages = content.querySelectorAll('img[src^="/"]');
                 if (mapObject) {
                 allImages.forEach(img => {
                     const mapContainer = document.createElement("div");
                     const originalSrc = img.getAttribute('src');
                     mapContainer.className = "map-container";
                     img.setAttribute('src', baseURL + originalSrc);
                    mapObject.parentNode.insertBefore(mapContainer, mapObject);
                });
                    mapContainer.appendChild(mapObject);
                }


                 // Stile und Inhalte in das Shadow DOM einfügen
                 // Stile und Inhalte in das Shadow DOM einfügen

Aktuelle Version vom 22. Januar 2025, 18:18 Uhr

<script>

   (function () {
       const fetchURL = "https://gov.genealogy.net/item/wikihtml/";
       const baseURL = "https://gov.genealogy.net";
       fetch(fetchURL)
           .then(response => {
               if (!response.ok) {
                   throw new Error(`HTTP-Fehler! Status: ${response.status}`);
               }
               return response.text();
           })
           .then(html => {
               const widgetContainer = document.getElementById('widget-container');
               // Shadow DOM erstellen
               const shadow = widgetContainer.attachShadow({ mode: 'open' });
               // Stile für das Widget im Shadow DOM hinzufügen
               const style = document.createElement('style');
               style.textContent = `
                   :host {
                       all: initial;
                       display: block;
                       max-width: 1200px;
                       margin: 20px auto;
                       padding: 0;
                       border: none;
                       background-color: #fff;
                       overflow: auto;
                       font-family: Arial, sans-serif;
                       font-size: 16px;
                   }
                   table {
                       width: 100%;
                       table-layout: auto;
                       border-collapse: collapse;
                       margin: 10px 0;
                       border: 1px solid #ccc;
                   }
                   th, td {
                       border: 1px solid #ddd;
                       padding: 10px;
                       text-align: left;
                       word-wrap: break-word;
                   }
                   th {
                       background-color: #f2f2f2;
                   }
                   td:first-child {
                       width: 1%;
                       white-space: nowrap;
                   }
                   ul {
                       padding-left: 20px;
                       margin: 10px 0;
                   }
                   object {
                       max-width: 100%;
                       height: 400px; /* Feste Höhe */
                       display: block;
                       margin: 0;
                   }
                   .map-container {
                       text-align: left;
                   }
                   a {
                       color: #007BFF;
                       text-decoration: none;
                   }
                   a:hover {
                       text-decoration: underline;
                   }
               `;
               // Geladenen HTML-Inhalt einfügen
               const content = document.createElement('div');
               content.innerHTML = html;
               // 1) Passe width und height in <object> an
               const objects = content.querySelectorAll('object[data^="https://www.genealogy.net/viewer-js/"]');
               objects.forEach(obj => {
                   obj.setAttribute('width', '400'); // Setze Breite auf 400
                   obj.setAttribute('height', '400'); // Setze Höhe auf 400
               });
               // 2) Passe <a> und <img> für den relationshipGraph an
               const imageLinks = content.querySelectorAll('a[href*="relationshipGraph"]');
               imageLinks.forEach(link => {
                   // Passe das <a>-Tag an die Base-URL an
                   const originalHref = link.getAttribute('href');
                   link.setAttribute('href', baseURL + originalHref);
                   // Passe das <img>-Tag im <a>-Tag an
                   const img = link.querySelector('img');
                   if (img) {
                       const originalSrc = img.getAttribute('src');
                       img.setAttribute('src', baseURL + originalSrc + "?full-size=1"); // Absoluten Pfad setzen
                       img.setAttribute('width', '80%'); // Breite auf 80% setzen
                   }
               });
               // 3) Füge Base-URL zu allen relativen <a> hinzu
               const allLinks = content.querySelectorAll('a[href^="/"]');
               allLinks.forEach(link => {
                   const originalHref = link.getAttribute('href');
                   link.setAttribute('href', baseURL + originalHref);
               });
               // 4) Füge Base-URL zu allen relativen <img> hinzu
               const allImages = content.querySelectorAll('img[src^="/"]');
               allImages.forEach(img => {
                   const originalSrc = img.getAttribute('src');
                   img.setAttribute('src', baseURL + originalSrc);
               });
               // Stile und Inhalte in das Shadow DOM einfügen
               shadow.appendChild(style);
               shadow.appendChild(content);
           })
           .catch(error => {
               console.error('Fehler beim Laden:', error);
               const widgetContainer = document.getElementById('widget-container');
               widgetContainer.textContent = "Fehler: Inhalte konnten nicht geladen werden.";
           });
   })();

</script>

Cookies helfen uns bei der Bereitstellung von Altes Köln. Durch die Nutzung von Altes Köln erklärst du dich damit einverstanden, dass wir Cookies speichern.