Kris: Breadcrumb-Navigation mit Anchor-Problem

Hallo, ich habe leider keine Kenntnisse zu JavaScript:
Das folgende Script gibt eine Navigations-Zeile aus, die als Breadcrumb-Navigation in PHP bekannt ist.

<script language="javascript">
var path = "";
var href=document.location.href;
var s=href.split("/");
for (var i=2;i<(s.length-1);i++) {
path+="<A HREF=""+href.substring(0,href.indexOf(s[i])+s[i].length)+"/">"+s[i]+"</A> > ";
}
i=s.length-1;path+="<A HREF=""+href.substring(0,href.indexOf(s[i])+s[i].length)+"">"+s[i]+"</A>";
var url = path;
document.writeln(url);
</script>

Das Problem:
Mozilla-basierte Browser haben mit diesem Script Probleme beim Aufruf eines Ankers (z.B. index.htm#Anker) von einer anderen Seite aus. IE ignoriert Folgendes:
Ich rufe von seite1.htm ausgehend den Anker "Anker" auf Seite2.htm per Seite2.htm#Anker auf. Dies wird dann per obigen Javascript als Breadcrumb ausgegeben: Seite2.htm#Anker

Anstatt jedoch zum richtigen Anker (im Quelltext) zu springen, springen Mozilla-Basierte Browser offensichtlich zuerst zum Breadcrumb(-Anker). Der eigentlich definierte Anker lässt sich nicht ansteuern.

Nun brauche ich Hilfe beim Ersetzen des "#"-Zeichens im ausgegebenen JS. Wenn "#" zu "*" wird, so wird wohl auch von Mozilla-Browsern der richtige Anker angesprungen.

Ich bedanke mich, Kris

  1. Hallo Freunde des gehobenen Forumsgenusses,

    Auszug aus deiner Mail an mich:

    ich fand Dich als JS-Experten im selfHTML-Forum.

    Wie kommst du darauf, dass ich JS-Experte bin?
    Ich habe JS seit einem dreiviertel Jahr nicht mehr selbst verwendet!

    Dort steht auch mein Problem gepostet, jedoch
    erfreut es sich seither voelliger Missachtung

    Na und? Ist das etwa ein Grund, einem Forumsteilnehmer deshalb eine Mail zu schicken?
    Und keine Antwort nach nur 15h an einem Samstag bedeutet gar nichts,
    es gab schon Threads, auf die überhaupt nicht geantwortet wurde,
    das kann schonmal passieren. Sobald der Thread im Archiv ist darfst
    du ihn neu eröffnen.

    Hallo, ich habe leider keine Kenntnisse zu JavaScript

    Dann kannst du dein Problem nicht mit JavaScript lösen.
    Wenn du es trotzdem lösen willst kannst du
    a) JS lernen und die Besucher von der Breadcrumb-Navigation ausschließen, die JS nicht (aktiviert) haben
    b) Eine serverseitige Lösung bauen oder eine vorhandene in PHP verwenden.

    Das folgende Script gibt eine Navigations-Zeile aus, die als Breadcrumb-Navigation in PHP bekannt ist.

    Breadcrumb-Navigation und PHP haben zunächst einmal nichts miteinander zu tun.

    <script language="javascript">

    Error: Required attribute "type" missing.

    var path = "";

    var href=document.location.href;
    var s=href.split("/");
    for (var i=2;i<(s.length-1);i++) {
    path+="<A HREF=""+href.substring(0,href.indexOf(s[i])+s[i].length)+"/">"+s[i]+"</A> > ";
    }
    i=s.length-1;path+="<A HREF=""+href.substring(0,href.indexOf(s[i])+s[i].length)+"">"+s[i]+"</A>";
    var url = path;
    document.writeln(url);

      
    
    > </script>  
    > 
    
    ~~~  
      
    
    > Das Problem:  
    > Mozilla-basierte Browser haben mit diesem Script Probleme beim Aufruf eines Ankers (z.B. index.htm#Anker) von einer anderen Seite aus. IE ignoriert Folgendes:  
    > Ich rufe von seite1.htm ausgehend den Anker "Anker" auf Seite2.htm per Seite2.htm#Anker auf. Dies wird dann per obigen Javascript als Breadcrumb ausgegeben: Seite2.htm#Anker  
      
    Als Workaround könntest du mit [PCRE](http://de.selfhtml.org/perl/sprache/regexpr.htm) alles, was nach dem Bash kommt entfernen.  
      
    
    > Nun brauche ich Hilfe beim Ersetzen des "#"-Zeichens im ausgegebenen JS. Wenn "#" zu "\*" wird, so wird wohl auch von Mozilla-Browsern der richtige Anker angesprungen.  
      
    Das Objekt string kennt eine Funktion namens [replace](http://de.selfhtml.org/javascript/objekte/string.htm#replace).  
    Die ist dafür gemacht.  
      
    Gruß  
    Alexander Brock
    
    -- 
    [latex]\lim\_{3 \to 4}{\sqrt{3}} = 2[/latex]
    
    1. Hallo,

      Wie kommst du darauf, dass ich JS-Experte bin?

      Okay, wie ich eben erfahre, bist Du kein Experte, entschuldige.

      Na und? Ist das etwa ein Grund, einem Forumsteilnehmer deshalb eine Mail zu schicken?

      Ojeoje! Was hab ich da nur angerichtet! Auf der Suche nach Hilfe nur Unfrieden gestiftet...

      Dann kannst du dein Problem nicht mit JavaScript lösen.

      Ich hoffe doch. Vielleicht erbarmt sich ein JS-Experte in diesem Forum und ergänzt das gepostete Script um die notwendigen Zeilen. Dafür wäre ich dankbar.

      Alexander Brock

      Hoffnungsvolle Grüße einstweilen von Kris

      1. Hallo Freunde des gehobenen Forumsgenusses,

        Na und? Ist das etwa ein Grund, einem Forumsteilnehmer deshalb eine Mail zu schicken?
        Ojeoje! Was hab ich da nur angerichtet! Auf der Suche nach Hilfe nur Unfrieden gestiftet...

        Ne, nur den freundlichen Hinweis, dass Fachfragen per Mail unerwünscht sind.
        Nicht nur bei mir.

        Dann kannst du dein Problem nicht mit JavaScript lösen.
        Ich hoffe doch. Vielleicht erbarmt sich ein JS-Experte in diesem Forum und ergänzt das gepostete Script um die notwendigen Zeilen. Dafür wäre ich dankbar.

        Dieses Forum heißt _Self_Forum, es geht darum, dir zu helfen, wenn du es selbst versucht hast
        und z.B. an einer Fehlermeldung scheiterst, nicht darum, Scripte von dritten lauffähig zu machen.

        Wenn ein Script nicht funktioniert sag es dessen Autor, der wird sich wahrscheinlich darum kümmern.
        Wenn ich dir jetzt das Script umbaue hast du morgen ein anderes Poblem de selben Typs.

        Ich habe dir also nicht wirklich geholfen, das einzige, was wirklich hilft,
        ist Javascript zu lernen. Oder, wenn du PHP kannst, das VMenü zu verwenden.

        Gruß
        Alexander Brock

        --
        [latex]\lim_{3 \to 4}{\sqrt{3}} = 2[/latex]