Altes Köln

Widget:GOV-Test: Unterschied zwischen den Versionen

Aus Altes Köln
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 10: Zeile 10:
         const serverBaseURL = "https://gov.genealogy.net";
         const serverBaseURL = "https://gov.genealogy.net";


         fetch('https://gov.genealogy.net/item/wikihtml/SCHERGJO54EJ')
         fetch('https://example.com/fragment')
             .then(response => response.text())
             .then(response => {
                if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
                return response.text();
            })
             .then(html => {
             .then(html => {
                // Temporäres DOM-Element erstellen, um den HTML-Fragmentinhalt zu manipulieren
                 const tempDiv = document.createElement('div');
                 const tempDiv = document.createElement('div');
                 tempDiv.innerHTML = html;
                 tempDiv.innerHTML = html;


                 // Alle Links (`<a>`-Tags) anpassen
                 // Links anpassen
                 const links = tempDiv.querySelectorAll('a[href^="/"]'); // Selektiert Links mit relativen Pfaden
                 const links = tempDiv.querySelectorAll('a[href^="/"]');
                 links.forEach(link => {
                 links.forEach(link => {
                     link.href = serverBaseURL + link.getAttribute('href');
                     link.href = serverBaseURL + link.getAttribute('href');
                 });
                 });


                 // Alle Bilder (`<img>`-Tags) anpassen
                 // Bilder anpassen
                 const images = tempDiv.querySelectorAll('img[src^="/"]'); // Selektiert Bilder mit relativen Pfaden
                 const images = tempDiv.querySelectorAll('img[src^="/"]');
                 images.forEach(img => {
                 images.forEach(img => {
                     img.src = serverBaseURL + img.getAttribute('src');
                     img.src = serverBaseURL + img.getAttribute('src');
Zeile 33: Zeile 35:
                 contentDiv.innerHTML = tempDiv.innerHTML;
                 contentDiv.innerHTML = tempDiv.innerHTML;


                 // Beispiel für Styling (spezifisch für Widget-Container)
                 // Beispiel-Styling nur für Tabellen innerhalb des Widgets
                 const tables = contentDiv.querySelectorAll('table');
                 const tables = contentDiv.querySelectorAll('table');
                 tables.forEach(table => {
                 tables.forEach(table => {
Zeile 40: Zeile 42:
                 });
                 });
             })
             })
             .catch(error => console.error('Error loading content:', error));
             .catch(error => console.error('Fehler beim Laden:', error));
     })();
     })();
</script>
</script>


<style>
<style>
     /* Styling für den Widget-Container */
     /* Styling für den isolierten Widget-Container */
     #widget-container {
     #widget-container {
         margin: 20px auto;
         margin: 20px auto; /* Zentrierung und Abstand */
         padding: 10px;
         padding: 10px; /* Innenabstand */
         border: 1px solid #ccc;
         border: 1px solid #ccc; /* Rahmen für Sichtbarkeit */
         background-color: #f9f9f9;
         background-color: #f9f9f9; /* Hintergrundfarbe */
         overflow: auto; /* Verhindert, dass Inhalte andere Elemente beeinflussen */
         overflow: auto; /* Verhindert, dass der Inhalt über den Container hinausfließt */
     }
     }


    /* CSS wirkt sich nur auf Tabellen innerhalb des Widgets aus */
     #widget-container table {
     #widget-container table {
         border-collapse: collapse;
         border-collapse: collapse;
Zeile 62: Zeile 65:
         border: 1px solid #ddd;
         border: 1px solid #ddd;
         padding: 8px;
         padding: 8px;
    }
    #widget-container th {
        text-align: left;
        background-color: #f2f2f2;
     }
     }
</style>
</style>

Version vom 21. Januar 2025, 13:43 Uhr

Ajax-Variante mit wiki

<script>

   (function() {
       // Festgelegter Servername
       const serverBaseURL = "https://gov.genealogy.net";
       fetch('https://example.com/fragment')
           .then(response => {
               if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
               return response.text();
           })
           .then(html => {
               const tempDiv = document.createElement('div');
               tempDiv.innerHTML = html;
               // Links anpassen
               const links = tempDiv.querySelectorAll('a[href^="/"]');
               links.forEach(link => {
                   link.href = serverBaseURL + link.getAttribute('href');
               });
               // Bilder anpassen
               const images = tempDiv.querySelectorAll('img[src^="/"]');
               images.forEach(img => {
                   img.src = serverBaseURL + img.getAttribute('src');
               });
               // Manipulierten Inhalt in den Widget-Container einfügen
               const contentDiv = document.getElementById('content');
               contentDiv.innerHTML = tempDiv.innerHTML;
               // Beispiel-Styling nur für Tabellen innerhalb des Widgets
               const tables = contentDiv.querySelectorAll('table');
               tables.forEach(table => {
                   table.style.width = '100%';
                   table.style.fontFamily = 'Arial, sans-serif';
               });
           })
           .catch(error => console.error('Fehler beim Laden:', error));
   })();

</script>

<style>

   /* Styling für den isolierten Widget-Container */
   #widget-container {
       margin: 20px auto; /* Zentrierung und Abstand */
       padding: 10px; /* Innenabstand */
       border: 1px solid #ccc; /* Rahmen für Sichtbarkeit */
       background-color: #f9f9f9; /* Hintergrundfarbe */
       overflow: auto; /* Verhindert, dass der Inhalt über den Container hinausfließt */
   }
   /* CSS wirkt sich nur auf Tabellen innerhalb des Widgets aus */
   #widget-container table {
       border-collapse: collapse;
       width: 100%;
   }
   #widget-container td, #widget-container th {
       border: 1px solid #ddd;
       padding: 8px;
   }
   #widget-container th {
       text-align: left;
       background-color: #f2f2f2;
   }

</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>
 





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.