• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Anker und URLs mit Get-Parametern

bodil

Mitglied
Ich will auf einer langen Seite bei allen Zwischenüberschriften eine kleine Navigation einbauen, deren Links jeweils zu allen anderen Zwischenüberschriften führen. (Die Navigationen werden nach dem Laden der Seite per jquery erstellt.) Da ich ein CMS (Contenido) benutze, haben die URLs (noch) beispielsweise die Form
Code:
www.domainname.de/cms/front_content.php?idcat=51&idart=80
Der erste Anker
HTML:
<a name="sunrise"></a>
soll in jeder Navigation über den Link
HTML:
<a href="#sunrise">Sunrise</a>
erreicht werden. Ein Klick lädt allerdings eine neue Seite:
Code:
www.domainname.de/cms/#sunrise
Hat jemand eine Idee, wie ich es schaffe, ohne Neuladen innerhalb der Seite zu navigieren? Bzw. weiß jemand was ich falsch mache? Liegts an den Get-Parametern? Daran dass im Headbereich ein Base-Verzeichns definiert ist?
HTML:
<head>
    <base href="http://www.domainname.de/cms/">
    ...
</head>
Liegts daran, dass ich die Navigationen mit JS erst dann erstelle, wenn das HTML schon fertig geladen ist?
 
Werbung:
Ja, gute Seite. Aber ich mach alles so wie dort beschrieben. Aber es geht trotzdem nicht ... die Seite wird neu geladen ... und das soll sie ja nicht ...
 
Werbung:
Hallo,

also beim anker ladet die Seite immer neu und landet bloss gleich beim Anker.

Wenn das ohne neu laden möchtest geht nur js bzw. jquery was sich ja anbieten würde wenn das schon geladen wird.
Beispiel: Animiertes Scrollen

Cheffchen
 
Vielen Dank! Das Base-Verzeichnis scheint das Problem zu sein ... :-( Das mit dem animierten Scrollen probier ich mal aus!
 
Werbung:
Hallo,

also ich habe das mit dem sanften scroll gleich eingebaut.
war zwar kleiner fehler drin das keine anderen links mehr funktionierten aber das ging leicht zu ändern.
das return false; musste zwei zeilen höher also dann so
Code:
            }, 2000 , function (){location.hash = ziel;});
           return false;
       });

Cheffchen
 
Der sanfte Scroll kommt als nächstes. Jetzt habe ich erstmal das generelle Problem behoben. Dass das Base-Tag schuld ist, hätte ich eigentlich auch selbst herausfinden können. Wenn ich es im Firebug rausschmeiße, geht alles wie gewollt *gegenDieStirnKlopf*.
Für den Fall, dass jemand ein ähnliches Problem hat, zum Beispiel im Zusammenhang mit Contenido): Ich habe einen Prefix generiert, dafür aus der URL alle Anker und das href des Base-Tags entfernt und gleich noch ein Hash-Zeichen angehängt:
Code:
var [COLOR=#0000ff]baseAncor[/COLOR] = $(location).attr('href').split(/#/)[0].replace($("base").attr('href'), "") + "#";
Wenn ich mir die Links baue, hänge ich den jeweiligen Ankernamen hier nur noch an:
Code:
nav += "<a href='" + [COLOR=#0000ff]baseAncor[/COLOR] + ancor + "'>" + caption + "</a>";
Bisher gehts :-)
 
Zurück
Oben