Wpisywanie znaku tabulacji w polach tekstowych przeglądarki

89

Często, kiedy chcę sformatować tekst w polu tekstowym strony internetowej, naciskam Tabklawisz.

Niestety, to nie wstawia znaku tabulacji, ale zamiast tego przenosi kontrolkę do następnego elementu formularza (takiego jak przycisk lub pole wyboru).

Czy w przypadku przeglądarek takich jak Firefox / IE istnieje sposób na zachowanie formatowania karty w polu tekstowym poprzez wpisanie kombinacji klawiszy?

Rohit
źródło

Odpowiedzi:

10

Tabinta to dodatek do przeglądarki Firefox, który pozwala to zrobić.

odwracać
źródło
4
Jakieś rozwiązanie dla Chrome?
sorin,
2
@SorinSbarnea: Zobacz moją odpowiedź
Janus Troelsen
Nie jest już zgodny z Firefoksem.
rory.ap
Jest to wtyczka działająca w przeglądarce Firefox 64: addons.mozilla.org/en-US/firefox/addon/textarea-tabbing
Stefan_Fairphone
Ta wtyczka już nie istnieje (bez winy odpowiedzi minęło prawie dziesięć lat, odkąd udzielono odpowiedzi na pytanie, a Firefox bardzo się zmienił).
aoeu
63

W systemie Windows możesz nacisnąć Alt+ 09. Działa to tylko z klawiszami numerycznymi. (Zwolnij Altpo naciśnięciu ostatniego klawisza numerycznego.)

ta.speot.is
źródło
3
Upewnij się, że używasz klawiszy NumPad
CatamountJack
@Chris: Kiedy wykonuję te dokładne instrukcje, nie wstawia znaku tabulacji, ale działa jak klawisz tabulacji. Próbowałeś tego w przeglądarce internetowej?
Casebash,
@Casebash Działa w tym bardzo oknie komentarza, w Chrome, w Windows 7 x64.
Chris
2
Tylko jeśli masz system Windows i klawiaturę z klawiaturą numeryczną.
Ślimak mechaniczny
1
... a jeśli używasz Chrome. FF widzi to jak klawisz tabulacji, IE nie wydaje się nic robić. Ponownie +1 za przypomnienie tego prostego starego hacka :)
Halil Özgür,
50

Linux i inne systemy POSIX (oprócz Mac OS):

Aby wprowadzić zakładki w aplikacjach GTK + (takich jak Firefox lub Chrome):

  1. Ctrl+ Shift+U

  2. Rodzaj 9

  3. Naciśnij SpacelubEnter

Źródło: Wikipedia: Unicode Input

Janus Troelsen
źródło
Działa, ale nie jest użyteczny do wcięcia wielu linii jednocześnie.
MYGz
13

W przeglądarkach Safari i Firefox w systemie Mac OS X możesz nacisnąć, ControlOptionTababy wstawić kartę w polu tekstowym, które aktualnie edytujesz.

Daniel Beck
źródło
7
Wygląda na to, że to nie działa w Chrome 50 na El Cap
jcollum
1
Ani w przeglądarce Firefox 53 w Sierra.
Jason R. Coombs
1
@ JasonR.Coombs Wciąż działa w przeglądarce Safari, więc można założyć, że coś zmieniło się w Firefoksie w ciągu czterech lat od napisania tej odpowiedzi.
Daniel Beck
9

Otwórz Notatnik lub podobny edytor tekstu i rozpocznij nowy pusty dokument. Typ Tab. Skopiuj znak tabulacji do schowka. (W systemie Windows, Ctrl+ A, Ctrl+ Cto zrobi).

Teraz wróć do obszaru tekstowego w przeglądarce. Ustaw kursor w żądanym miejscu i wklej znak tabulacji. ( Ctrl+ Vw systemie Windows).

Voila, gotowe!

Doin
źródło
1
Ciro, czy jest zepsuty dla zwykłych pól tekstowych i pól wprowadzania tekstu, czy po prostu elementów „zadowolonych”? Ponieważ jeśli jest to tylko problem „zadowalający”, może nie wpłynąć na tak wiele osób (na przykład PO) ...
Doin
2
To było najprostsze rozwiązanie, chyba że musisz to robić często.
jcollum
8

Istnieje wtyczka Chrome o nazwie Textarea Code Formatter .

Umożliwia wstawianie kart w polach tekstowych w przeglądarce Chrome. Pozwala także wyróżnić wiele linii i wstawić tabulatory przed każdą wybraną linią.

Problemem jest jednak to, że często chcesz mieć standardowe zachowanie przy wstawianiu tabulatorów. Jeśli używasz tabulacji do przełączania między polami, możesz domyślnie wybrać opcję „wyłączone” w opcjach.

Jeromy Anglim
źródło
4

Jeśli to Twoja witryna:

Wtyczka jQuery: http://teddevito.com/demos/textarea.html

jQuery(document).ready(function () {

     $("textarea").tabby();

});

Najpierw załaduj jQuery i wtyczkę, a następnie możesz tabulować i tworzyć tabulatory, a także przesuwać + tabulatory do „cofnij” jak to było.

Aby uzyskać wsparcie dla całej przeglądarki, musisz użyć rozszerzenia, skryptu użytkownika, wtyczki itp., Takich jak: 46704 dla Greasemonkey .

Grizly
źródło
Link jest martwy. O co chodzi z tymi wszystkimi jQuery. Musi istnieć sposób akceptowania kart za pomocą zwykłego JavaScript. Wtyczka jQuery zawsze jest przyjemna dla już wdrożonego rozwiązania, ale tak naprawdę nie jest rozwiązaniem.
Triynko
Wypróbuj tego szefa: stackoverflow.com/a/13130
Grizly,
1

Dużą zaletą Tabinta w Firefoksie jest to, że możesz odwzorować znak tabulatora na inny skrót klawiszowy, ponieważ tak naprawdę nie chcesz stracić domyślnego zachowania klawisza tab w przeglądarce.

Z Internet Explorerem nie masz rozwiązania w zakresie rozszerzeń przeglądarki, o których wiem. Tutaj jedynym sposobem jest zachowanie znaku tabulacji w schowku poprzez uprzednie skopiowanie go z innego programu, takiego jak notatnik.

Rozwiązania javascript wymagają nazwy pola tekstowego, w którym będą działać, więc nie jest to idealne ani praktyczne. Chociaż kombinacje klawiszy Alt w obu przeglądarkach nadal wykonują normalne naciśnięcie klawisza tabulacji, więc one również nie działają.

Krasnolud
źródło
1

Mam pomieszane Wit AutoHotkey trochę dostać tę zdolność, a jedynie „kuloodporne” Znalazłem rozwiązanie jest naprawdę wklej (nie wysyłaj) sam znak tabulatora.

;
; TAB character
; pasted from clipboard
; win tab
;
#tab::
old_clip:=clipboard
clipboard:=A_Tab
clipWait
sendInput,^v
clipboard:=old_clip
clipWait
return

Okazuje się, że to powiązanie AHK jest nawet przydatne w edytorach tekstu, które obsługują dodatkowe naciśnięcie klawisza TAB; na przykład. IDE skonfigurowane do korzystania z autoindent po spacji.

myf
źródło
0

Tab Grabber jest trochę jak Tabinta, tylko dla Chrome (pozwala na tabulatory w polach textarea).

SiteKickr
źródło
0

Aby wpisać klawisz tabulatora w polu tekstowym, możesz użyć takiego skryptu (nazwa tego pola tekstowego, które akceptuje klawisze tabulatora txtLongText):

[VB.NET]

txtLongText.Attributes.Add("onkeydown", _
"if(event.which || event.keyCode){if ((event.which == 9)" & _ 
"|| (event.keyCode == 9)) {document.getElementById('" & _ 
txtLongText.ClientID + "').selection = " & _
document.selection.createRange();" & _ 
txtLongText.ClientID & ".selection.text = " & _
" String.fromCharCode(9);return false;}} else {return true}; ")

[DO#]

txtLongText.Attributes.Add("onkeydown", 
"if(event.which || event.keyCode){if ((event.which == 9)" +
"|| (event.keyCode == 9)) {document.getElementById('"+
txtLongText.ClientID + "').selection = document.selection.createRange();" + 
txtLongText.ClientID + ".selection.text = String.fromCharCode(9);return false;}} else {return true}; ");

Lub lepiej, aby uniknąć twardego kodowania, możesz umieścić ten kod w funkcji o nazwie EnableTabType. Funkcja ma tylko jeden parametr, który określa TextBoxkontrolę nad tym, gdzie należy włączyć wpisywanie znaków Tab.

[VB.NET]

Public Sub EnableTabType(tb As TextBox)
    tb.Attributes.Add("onkeydown", _
    "if(event.which || event.keyCode){if((event.which == 9)" & _ 
    "|| (event.keyCode == 9)) {document.getElementById('" & _ 
    tb.ClientID & "').selection=document.selection.createRange();" & _
    tb.ClientID & ".selection.text = " & _
    " String.fromCharCode(9);return false;}}else{return true};")
End Sub 

[DO#]

public void EnableTabType(TextBox tb)
{ 
    tb.Attributes.Add("onkeydown", 
    "if(event.which || event.keyCode){if ((event.which == 9)" +
    "|| (event.keyCode == 9)) {document.getElementById('"+
    tb.ClientID + "').selection = document.selection.createRange();" +
    tb.ClientID + ".selection.text = String.fromCharCode(9);return false;}} else {return true}; ");
}

Źródło: http://www.beansoftware.com/ASP.NET-Tutorials/Access-Tab-Key.aspx

admintech
źródło
0

lub używając ahk, aby wstawić 4 * spację w edytorze:

^Right::
tabspace:="    "
send,%tabspace%    
return 

możesz zobaczyć wyjaśnienie szczegółów kodu w kodzie ahk

Lu Zhao
źródło