esc-Taste zur Navigation nutzen

  • hi,


    ich würde gern die Escape-Taste mit einem Navigationsschritt "zurück" belegen: ./ also eine Stufe höher.
    wwie geht das, womit macht man das am besten?


    all

  • einen Javascriptcode habe ich gefunden, der prinzipiell funtkioniert:

    Code
    1. ... else if (e.keyCode == '27') { <!-- esc -->
    2. window.location = "http://www.dogs.de"; <!-- showpage(page-1); -->
    3. }

    jedoch weiß ich nicht, wie ich eine Ebene höher komme, von:
    index.php?id=cont2#0
    auf z.B.
    index.php


    "normalerweise" per ./


    aber: window.location funtioniert so nicht, mit der URL


    all

  • Danke. Nein - haut nicht hin.

    Code
    1. document.onkeydown = checkKey; ...
    2. function checkKey(e) {
    3. e = e || window.event;
    4. ...
    5. else if (e.keyCode == '27') { <!-- esc -->
    6. history.replaceState('index.php'); <!-- window.location = "./ "; showpage(page-1); window.history.length; history.replaceState(); ... -->
    7. } ... }

    ich komme da irgendwie nicht raus, diese Anhängsel ?id=cont2#0 will der browser nicht vergessen. Es würde ja reichen, die schlichte index.php zu laden.


    all

  • Dann erkläre bitte genau, was Du möchtest.
    Wenn Du einen Schritt zurück willst in der History, reicht per JS:

    Code
    1. document.addEventListener( 'keyup', function(e) {
    2. e.preventDefault();
    3. if ( e.key == 'Escape' )
    4. window.history.back();
    5. });

    ungetestet, aber im groben sollte das als Grundlage gut genug sein.


    Willst Du allerdings nur die gleiche URI ohne Parameter aufrufen, nimmste die einfach weg, sollte mit window.location.pathname funktionieren.

  • > Dann erkläre bitte genau, was Du möchtest.
    eine Stufe höher navigieren, hier in dem Falle von
    index.php?id=slide#0
    index.php?id=slide#1
    index.php?id=slide#2
    ...


    auf


    index.php


    das Navigieren funktioniert zwischen 2 und 0
    aber aus den slides, also dem index.php-Anhängsel, kommt es nicht raus, bei 0 ist Schluß,
    es geht keine "Stufe höher".


    und abgeschickt wird die Anweisung ja?
    Mit einem einfachen window.location.pathname; Da bedarf es keines "Enters" um aktiv zu werden.
    (ich habe lange nichts mehr mit Js gemacht ...)



    all

  • Danke!

    Das hat in meinem o.g. Funktionszusammenhang nicht funktioniert.
    Und dass man window.location.href explizit etwas zuweisen muss hatte ich nicht auf dem Schirm.
    Vor über 2 Jahren hatte ich Letztesmal mit Js zu tun ...


    Ich habe jetzt nur deine Anweisung genommen
    und meine else if - Erweiterung der function checkKey(e) rausgenommen.


    So funktioniert sogar mein Anfangs gedachtes './'
    window.location.href = './'; // oder index.php, ...


    best,
    all