Ergänzung des HRDLog-Online-Logbuchscripts

Wer auf seiner Website wie ich das Online-Logbuch von HRDLog nutzt, wird gemerkt haben, dass hier ein Problem existiert, wenn nach der Rufzeicheneingabe im Suchfenster statt mit der Maus auf „Send“ einfach die Eingabe mit drücken der Enter-Taste das Absenden des Formulars angestoßen wird. Hierbei wird nämlich (zumindest bei mir und ich gehe davon aus, auch bei anderen ist es genau so) die Seite schlicht neu aufgerufen mit einem zusätzlichen URL-Parameter, der das Rufzeichen enthält. Das HRDLog-Script interessiert sich jedoch nicht für die Such-Parameter.

Dieses Problem habe ich nun mit nachfolgendem Script, welches einfach direkt unterhalb des Scriptes von HRDLog in die Website einzubinden ist, gelöst:

<script type="text/javascript" language="javascript">// <![CDATA[
function getQueryParams(qs) {
    qs = qs.split("+").join(" ");
    var params = {}, tokens, re = /[?&]?([^=]+)=([^&]*)/g;
    while (tokens = re.exec(qs)) {
         params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);     
    }
    return params; 
}
var query = getQueryParams(document.location.search);
if ( query.hrdl_callsign.length > 0) {
    ohrdlog.RequestByCallsign(query.hrdl_callsign);
}
// ]]></script>

Damit wird folgendes Verhalten erreicht:

Es wird überprüft, ob ein Rufzeichen per URL-Parameter übergeben wurde. Ist dies der Fall, wird dies dem HRDLog-Script übergeben und dieses führt die Logbuch-Abfrage aus, als hätte man vorher auf den Send-Button geklickt. Das Ergebnis ist, wie man erwartet, dass die entsprechenden Logeinträge (sofern vorhanden) erscheinen.

Damit ist ein Problem vom Tisch, was mich eigentlich seit Jahren schon irgendwie wurmt, ich nur nie so recht den Antrieb fand, dieses Problem einmal anzugehen und zu lösen.

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* Cookie-Opt-In: ich bin damit einverstanden, dass mein Name, meine E-Mail Adresse und meine Webadresse in diesem Browser gespeichert werden, bis ich wieder kommentiere (Datenschutzerklärung).