Freigeisterhaus Foren-Übersicht
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   NutzungsbedingungenNutzungsbedingungen   BenutzergruppenBenutzergruppen   LinksLinks   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

JavaScript krepiert an einer bestimmten Stelle im Dokument

 
Neues Thema eröffnen   Neue Antwort erstellen   Drucker freundliche Ansicht    Freigeisterhaus Foren-Übersicht -> DAU's Paradise
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Critic
oberflächlich



Anmeldungsdatum: 22.07.2003
Beiträge: 16358
Wohnort: Arena of Air

Beitrag(#1004534) Verfasst am: 21.05.2008, 03:16    Titel: JavaScript krepiert an einer bestimmten Stelle im Dokument Antworten mit Zitat

Ich habe gerade ein JavaScript geschrieben, das in einem meiner Riesen-HTML-Dokumente Fußnoten/Endnoten in einem von mehreren wahlweisen Formaten generieren soll. Dabei werden Inhalte, die in HTML "span"-tags mit Attribut "class='footnote'" stehen, ausgelesen und daraus eine Endnote und an der Stelle, wo der "span"-tag steht, einen Verweis auf diese generiert. Dabei habe ich mich von einem Skript inspirieren lassen, das ein bißchen mit DOM arbeitet (naja, quick-and-dirty).

Jetzt habe ich nun das Problem, daß das Skript immer an einer bestimmten Literaturangabe in der HTML-Datei krepiert, nämlich "(vgl. Townsend+Harris 2004)". Der "unbekannte Laufzeitfehler" soll dabei sinnigerweise in der Zeile auftreten, in der der neue Inhalt von span.innerHTML erzeugt wird.

Dieses Verhalten ist vollkommen willkürlich, z.B. spielt es keine Rolle, wieviele "span"-tags vor dem "Übeltäter" im Dokument erscheinen. Auch die Länge des Dokuments scheint keine Rolle zu spielen, da ich im übrigen die Inhalte aller "span"-tags im Dokument normal auslesen kann.

Hat jemand eine Idee, woran das liegen könnte? Z.B. irgendwelche reservierten Schlüsselwörter? Oder eine Eigenheit des Browsers?

Code:
<!-- Original script from brandspankingnew.net was strongly adapted in order to fit my needs. -->

// fstyle = 0: deaktiviert / "Harvard-Stil"
// fstyle = 1: hochgestellte Nummern als Verweise, Literaturangabe in der Fußnote
// fstyle = 2: Nummern in eckigen Klammern

function footnotes(contID,noteID)
{
// Aufruf im HTML-Dokument: footnotes('footnote','footnotes');

    if (fstyle == 0) { return; }
    var cont = document.getElementById(contID);
    var noteholder = document.getElementById(noteID);
    var spans = cont.getElementsByTagName("span");
    var notes = 0;
    var tempString = "";
    var span = "";

    for (i=0;i<spans.length;i++)
    {
       span = spans[i];

       if (span.className == "footnote")
       {
            notes++;
            tempString = span.innerHTML;
            if (tempString.length >= 2 && tempString.charAt(0) == '(' && tempString.charAt(tempString.length-1) == ')') { tempString = tempString.slice(1,tempString.length-1); }
            if (tempString.length >= 2 && tempString.charAt(0) == '[' && tempString.charAt(tempString.length-1) == ']') { tempString = tempString.slice(1,tempString.length-1); }

            var div = document.createElement("div");
            var footnotetext = "<a name='note"+notes+"'><sup>" + notes + "</sup> " + tempString + " <a href='#nlink"+notes+"' title='zurück'>↩</a>";
            div.innerHTML = footnotetext;
            noteholder.appendChild(div);

            switch(fstyle) {
             case 1: span.innerHTML = "<a name='nlink"+notes+"' href='#note" + notes + "' title='zur Fußnote'><sup>" + notes + "</sup></a>"; break;
             case 2: span.innerHTML = "<a name='nlink"+notes+"' href='#note" + notes + "' title='zur Fußnote'>[" + notes + "]</a>"; break;
            }
      }
}

_________________
"Die Pentagon-Gang wird in der Liste der Terrorgruppen geführt"

Dann bin ich halt bekloppt. Mit den Augen rollen

"Wahrheit läßt sich nicht zeigen, nur erfinden." (Max Frisch)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Critic
oberflächlich



Anmeldungsdatum: 22.07.2003
Beiträge: 16358
Wohnort: Arena of Air

Beitrag(#1005939) Verfasst am: 23.05.2008, 01:32    Titel: Re: JavaScript krepiert an einer bestimmten Stelle im Dokument Antworten mit Zitat

Critic hat folgendes geschrieben:
Ich habe gerade ein JavaScript geschrieben, das in einem meiner Riesen-HTML-Dokumente Fußnoten/Endnoten in einem von mehreren wahlweisen Formaten generieren soll. Dabei werden Inhalte, die in HTML "span"-tags mit Attribut "class='footnote'" stehen, ausgelesen und daraus eine Endnote und an der Stelle, wo der "span"-tag steht, einen Verweis auf diese generiert. Dabei habe ich mich von einem Skript inspirieren lassen, das ein bißchen mit DOM arbeitet (naja, quick-and-dirty).

Jetzt habe ich nun das Problem, daß das Skript immer an einer bestimmten Literaturangabe in der HTML-Datei krepiert, nämlich "(vgl. Townsend+Harris 2004)". Der "unbekannte Laufzeitfehler" soll dabei sinnigerweise in der Zeile auftreten, in der der neue Inhalt von span.innerHTML erzeugt wird.
...


In der Tat funktioniert das Script und erzeugt mir Fußnoten und Verweise darauf, wenn ich keine HTML-Anchors ("a name"...) erzeuge. Dann habe ich allerdings auch keine Möglichkeit, von einer Markierung zu der damit verbundenen Fußnote zu springen. Ein unbefriedigendes Verhalten. Allerdings bleiben für den, der JavaScript deaktiviert hat, die Literaturverweise, die eigentlich in Fußnoten sollten, immerhin innerhalb des Textes stehen.
_________________
"Die Pentagon-Gang wird in der Liste der Terrorgruppen geführt"

Dann bin ich halt bekloppt. Mit den Augen rollen

"Wahrheit läßt sich nicht zeigen, nur erfinden." (Max Frisch)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen   Drucker freundliche Ansicht    Freigeisterhaus Foren-Übersicht -> DAU's Paradise Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Impressum & Datenschutz


Powered by phpBB © 2001, 2005 phpBB Group