Refereren naar de online stamboom vanuit een andere webstek

Tja, dan heb je die mooie stamboom gepubliceerd en wil je in een ander verhaal, bijvoorbeeld in je blog, refereren naar een of meer personen in die stamboom en dat lukt maar niet. Je krijgt wel de persoonsgegevens te zien, maar niet de mooie vensterstructuur. Het probleem zit hem in het feit dat de makers van ProGen hebben gekozen voor het gebruik van html-frames. Op zich was dat een goede keuze, maar precies het bovenstaande probleem ontstaat daardoor.

Er is gelukkig een niet al te ingewikkelde manier om dit probleem te omzeilen, alleen het hoofdbestand – van huis uit ...-frm3.htm genaamd – dient te worden aangepast:

<!-- Created by : G.J.M. Koper -->
<!-- Date/Time  : 01-03-2020 11:14:48 -->
<!-- Program    : PRO-GEN 3.50 -->
<!-- File       : VOORBLD -->
<!-- ***** All rights reserved (C) 2020 G.J.M. Koper ***** -->

<html>
  <head>
    <title>PRO-GEN uitvoer</title>
    <!-- GK: hieronder is een meta-blok toegevoegd om de karaktercodering vast te stellen -->
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <!-- GK: hieronder wordt de javascript bibliotheek opgeroepen en de functie LoadFrames gedefinieerd -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>
        function LoadFrames(){
        var genurl = location.search.substring(1);
        if (genurl == "") genurl = "demo-01.htm";
        document.getElementById('output').src = genurl;
        }
    </script>
  </head>
  <frameset rows="125,*" frameborder="2" framespacing="2" border="2">
    <frame src="demo-keys.htm" name="keyindex" marginheight="0" marginwidth="0">
  <!-- GK: hieronder is de onload-tag toegevoegd -->
    <frameset cols="20%,*" frameborder="2" framespacing="2" border="2" onload="LoadFrames();">
      <frame src="demo-indx-a.htm" name="index" marginheight="4" marginwidth="4">
      <!-- GK: hieronder is een id toegevoegd -->
      <frame src="demo-01.htm" id="output" name="output" marginheight="4" marginwidth="4">
    </frameset>
   <noframes>
    <body>
      Deze pagina maakt gebruik van frames.<br />
      Hiervoor is Netscape of Internet Explorer versie 2.0 of hoger nodig.<br />
      <p />
      U kunt wel enkel de <a href="demo-01.htm">gegevens weergeven</a>, maar de index blijft dan achterwege.<br />
    </body>
   </noframes>
  </frameset>
</html>

Hoe gebruik je het vervolgens? Stel je voor, dat de stamboom is te vinden met demo.gerkoper.nl (die bestaat echt!). Bij die webstek is naam demo-frm3.htm veranderd naar index.htm. Daardoor zijn er verder geen toevoegingen nodig aan de naam. Uit de index leren we dat bijvoorbeeld Anna Paulowna is te vinden op de pagina demo.gerkoper.nl/demo-42.htm#BM4.htm (Dat is de naam van de link die tevoorschijn komt als de cursor er op staat). Om nu de browserpagina te openen zodat Anna Paulowna in het persoonsgevevens-venster komt tikken we op de opdrachtregel demo.gerkoper.nl/index.htm?demo-42.htm#BM4. Met index.htm roepen we de gewone venster-indeling op en met de specificatie na het vraagteken geven we de inhoud van het persoonsregister.

Hoe het werkt? Laten we de veranderingen bekijken in bovenstaande html-code.

  • Op regel 28 wordt het venster geopend met daarin de gegevens van de op dat moment gekozen persoon. De bijbehorende paginacode staat bij src, bij het opstarten wordt dat de eerste persoon in de stamboom. Die regel moet veranderd worden en om die door het javascript te laten vinden voegen we er een id aan toe.
  • Op regel 25 staat de instructie die er voor zorgt dat de daaronder staande venster-specificaties worden uitgevoerd. Met de onload-instructie wordt het javascript aangeroepen die de goede paginacode aan de src toevoegt.
  • In regels 13-20 staat de aanroep van de javascript-bibliotheek en de instructies die nodig zijn om alles wat in de opdrachtregel achter het vraagteken staat te gebruiken als specificatie van wat er aan persoonsgegevens getoond moet worden.

Er is nog een klein probleem: zonder voorzorgsmaatregelen komt de stamboompagina steeds in plaats van de tekst die we aan het lezen waren. Om dat te voorkomen kan de instructie gegeven worden om steeds in een nieuw tabblad/venster te openen. In principe kan de HTML-<a-tag zo worden ingesteld dat steeds hetzelfde tabblad/venster wordt gebruikt, bijvoorbeeld met target="pg". Bij wordpress lijkt dit niet te kunnen, in zelfgemaakte webpagina’s wel.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *