kostenloser Webspace werbefrei: lima-city


Browser-Tasten mit JavaScript deaktivieren?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Ich bastle hier spaßhalber an einer Fake-Shell. Das Problem dabei ist nur, dass Tasten wie z.B. die Rücktaste im Browser mit einer Funktion hinterlegt sind. Daher lässt sie sich nicht richtig verwenden (Rücktaste => Verlauf zurückgehen). Wie bekomme ich das trotzdem hin?

    Danke im Vorraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife schrieb:
    Ich bastle hier spaßhalber an einer Fake-Shell. Das Problem dabei ist nur, dass Tasten wie z.B. die Rücktaste im Browser mit einer Funktion hinterlegt sind. Daher lässt sie sich nicht richtig verwenden (Rücktaste => Verlauf zurückgehen). Wie bekomme ich das trotzdem hin?

    Danke im Vorraus


    Ich kann das Problem nicht nachvollziehen, da bei mir bei der Rücktaste einfach der Text gelöscht wird?!
    Hast du das Problem also gelöst? Wenn ja sag uns doch wie, würde mich auch interessieren?
  4. Autor dieses Themas

    hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    alfr3d schrieb:
    Ich kann das Problem nicht nachvollziehen, da bei mir bei der Rücktaste einfach der Text gelöscht wird?!
    Das funktioniert aber nur dann, wen du z.B. den Link in einem neuen Tab öffnest.
    Wenn du hingegen auf den Link klickst wird die Rücktaste NICHT funktionieren.
    Der Grund: die Rücktaste ist mit der "Zurück"-Funktion des Browser verknüpft. Deshalb wird dann immer zur vorherigen Seite zurückgesprungen. Wenn kein Verlauf existiert (das passiert, wenn die URL als ERSTES aufgerufen wurde) kann auch nicht zur vorherigen Seite zurückgegangen werden, deshalb funktioniert die Rücktaste auch anscheinend so wie sie sollte.
  5. Ich kann mir nicht vorstellen, dass mit Javascript solche Funktionen umgangen werden können; dies würde einen bedeutenden Eingriff darstellen, den die Browserhersteller sicher nicht ermöglichen werden.

    Die einzige Lösung (außer der, die Nutzer einfach freundlich darauf hinzuweisen) ist die, mit einem Link auf die Seite zu verweisen, der automatisch in einem neuen Tab öffnet:
    <a href="#" target="blank">link</a>
  6. t*****b

    hackyourlife schrieb:
    Ich bastle hier spaßhalber an einer Fake-Shell. Das Problem dabei ist nur, dass Tasten wie z.B. die Rücktaste im Browser mit einer Funktion hinterlegt sind. Daher lässt sie sich nicht richtig verwenden (Rücktaste => Verlauf zurückgehen). Wie bekomme ich das trotzdem hin?


    Schau dir mal die Funktionen onbeforeunload und ununload an, vielleicht könntest du das Verlassen der Seite damit verhinden (return false).
  7. Autor dieses Themas

    hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Jetzt gibt es noch ein neues Problem: über JavaScript bekomme ich nur Key-Codes, diese sind aber bei jedem Keyboard-Layout die gleichen. Die Frage ist jetzt, wie ich Key-Codes so übersetzen kann, dass ich am Ende einen Character-Code bekomme, der Tastaturlayout-unabhängig ist (auf einem US-Keyboard '!' => !, auf einem DE-Keyboard '!' auch => !, obwohl das andere Tasten sind).
  8. Es gibt eine andere Lösung die diese Beschränkung umgeht: ein unsichtbares Textfeld.
    Genau diese Variante ist jetzt auch in der Online-Shell verbaut, die hier direkt auf der Seite integriert zu finden ist.

    Kurz die Funktionsweise für Interessierte:
    Ein Textfeld wird an den Koordinaten x = -1000 und y = -1000 dargestellt. Der Fokus liegt immer am Textfeld. Sobald der Benutzer irgendwo hinklickt wird der Fokus wieder auf das Textfeld gelegt. Somit wird Text markieren und kopieren auch unmöglich, das stört hier aber nicht weiter.
    Auf das Textfeld wird dann ein Keylistener registriert der jeden Tastendruck richtig mitbekommt.
    Folgender Code verhindert vom Keylistener aus, dass der Browser irgendwie auf die Tastendrücke reagiert:
    try {
    	// For non-IE browsers
    	event.stopPropagation();
    	event.preventDefault();
    } catch (e) { }
    So bekommt man auch Tasten wie Escape, Funktionstasten, Pfeiltasten, Tab, Enter, Shift, Alt, Strg.
    Leider funktioniert das wie immer nicht in jedem Browser... im IE kann man z.B. Strg+D nicht verwenden, da das der Browser trotzdem interpretiert, typisch IE halt.
    Beim Keylistener bekommt man ein Event mit folgenden Daten:
    event.keycode = der Tastencode
    event.charcode = Der Zeichencode, falls die Taste ein normales Zeichen war
    event.ctrlKey = ob die Strg-Taste gedrückt ist
    event.altKey = ob die Alt-Taste gedrückt ist

    Wenn ein Enter eingegeben wird wird die gesamte Zeile ausgewertet... wer es testen will kann das auf hackyourlifes Seite machen.

    Die verbesserte Variante dieser Shell erlaubt noch einen Datenstrom Server->Client auch wenn der Client keine Taste drückt, das lässt sich hier bei der "Web-Shell" bewundern. Ebenfalls ist dort Escape sowie Strg+Irgendwas richtig implementiert...

    Das Thema kann somit geschlossen werden, da alles Notwendige erklärt wurde.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!