Frage von mrdidi2708, 16

Wie erstelle ich eine URL mit Abschnitt Rewriting?

Hallo, ich habe eine OnePage gemacht und auf die verschiedenen Abschnitte kann man mit der Navigation zugreifen. Jetzt steht in der URL zB example.com/#Startseite

Was muss ich machen damit die Abschnitte nicht in zB #Startseite angezeigt werden, sondern immer nur die URL example.com zusehen ist?

Antwort
von Minilexikon, 5

Warum willst du das denn? Eigentlich ist das nicht im Sinne des Erfinders und hilft in den meisten Szenarien dem Benutzer weniger, sondern verwirrt ihn bzw. erschwert das Prozedere.

Wenn du das allerdings machen willst, kannst du - altmodisch - mit einem (i)Frame arbeiten.

Für moderne Lösungen kannst du statt internen Ankern die Sprungmarken per Script beeinflussen:

<a href="#startseite" id="startseite">Startseite</a>

und in jQuery:

$('a#startseite').click(function(e) {
    e.preventDefault(); <!-- Verhindert, dass der Link "ausgeführt", also der Anker gesetzt wird. -->
    <!-- Hier der Code zum Anzeigen der Startseite ggf. als Funktion -->
});

Du kannst das auch abwandeln und über ein switch lösen:

<a href="#startseite" class="page" data-page="startseite">Startseite</a>
$('a.page').click(function(e) {
    e.preventDefault();
    switch($(this).data('page') {
        case 'startseite':
            <!--- Hier wieder der Code der Seite -->
            break;
        <!-- je Seite dann ein neues case-Statement -->
    }
});

Vielleicht hilft dir das weiter. Ansonsten hilft es vielleicht, sich mal die HistoryAPI von JavaScript anzuschauen: https://rosspenman.com/pushstate-jquery/. Die ist eigentlich für ein bisschen was anderes gedacht, könnte aber ihren Zweck erfüllen.

Antwort
von threadi, 8

Auch wenn ich mir nicht sicher bin, ob das überhaupt geht wäre eine Antwort auf deine Frage nur möglich, wenn du auch sagen würdest welche Scripts du hierfür verwendest oder besser noch einen Link zur Seite zeigst.

Keine passende Antwort gefunden?

Fragen Sie die Community