2008-12-27 7 views
5

Webbrowser sind als Thin Clients für Webanwendungen gut geeignet.Registerkarten-Tastenverhalten im Browser-Bearbeitungssteuerelement

Wenn der Benutzer jedoch einen Code eingeben muss (wobei Registerkarten und Formatierung wichtig sind), in einem Bearbeitungsfeld innerhalb eines Webbrowsers, navigiert er bei jedem Drücken der "Tab" -Taste durch die Webseitensteuerelemente, anstatt zu drucken das "Tab" -Zeichen.

Gibt es freie Websteuerelemente oder gibt es einen Code, um das entgegengesetzte Verhalten zu erhalten?
Google Docs macht dies perfekt.

Danke.

Antwort

3

Yahoo UI-Bibliothek hat eine rich text editor, die Tab-Zeichen richtig behandelt.

BEARBEITEN: Ich vermute (weil ich nicht geschaut habe), dass sowohl der YUI-Editor als auch Googles Editor dies erreichen, indem sie einen onKeyPress-Handler zum Textcontainer hinzufügen. Wenn sie ein Tab-Zeichen erkennen, fügen sie dem Container eine Registerkarte hinzu und geben false zurück, um die normale Tab-Aktion abzubrechen.

2

Sie können die keyDown Ereignis filtern und die Tab-Taste fangen:

<html> 
<body> 
<script type="text/javascript"> 
function keyFilter(e, field) { 
    var key = window.event ? e.keyCode : e.which; 
    if (key == 9) { 
    field.value += "\t"; 
    return false; 
    } 
    return true; 
} 
</script> 

<form> 
<textarea onkeydown="return keyFilter(event, this);"></textarea> 
</form> 
</html> 

EDIT: Beachten Sie, dass es selbstverständlich ist komplizierter als das. Man muss verfolgen, wo im Text die Tabulatortaste gedrückt wird und das Zeichen entsprechend einfügen.

+0

Auf meinem Macintosh in Firefox müssen Sie überprüfen, e.keyCode für ein Tab-Zeichen als E. which nicht festgelegt ist. – tvanfosson

+0

Wer weiß, wie man es richtig macht (den Schlüsselcode bekommen)? – PEZ

+0

Ummm ... Auf meinem Mac in Firefox funktioniert der obige Code. Und es funktioniert auch in Safari. – PEZ