Breadcrumb-Navigation mit Anchor-Problem
Kris
- javascript
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
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]
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
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