84

Часто, когда я хочу отформатировать текст в текстовом поле веб-страницы, я нажимаю клавишу Tab .

К сожалению, это не вставляет символ табуляции, но вместо этого перемещает элемент управления к следующему элементу формы (например, кнопка или флажок).

Для браузеров, таких как Firefox/IE, есть ли способ получить поведение форматирования вкладки в текстовом поле, набрав комбинацию клавиш?

13 ответов13

57

В Windows вы можете нажать Alt+0 9. Это работает только с цифровыми клавишами цифровой клавиатуры. (Отпустите Alt после нажатия последней цифровой клавиши.)

46

Linux и другие системы POSIX (кроме Mac OS):

Для ввода вкладок в приложениях GTK+ (например, Firefox или Chrome):

  1. Ctrl + Shift + U

  2. Тип 9

  3. Нажмите пробел или Enter

Источник: Википедия: Unicode Input

12

В Safari и Firefox в Mac OS X вы можете нажать вкладку « Параметры управления», чтобы вставить вкладку в текстовое поле, которое вы в данный момент редактируете.

11

Tabinta - это дополнение к Firefox, которое позволяет вам это делать.

8

Откройте Блокнот или аналогичный текстовый редактор и запустите новый пустой документ. Тип Tab. Скопируйте ваш символ табуляции в буфер обмена. (В Windows Ctrl+A, Ctrl+C сделает это).

Теперь вернитесь к текстовой области в вашем браузере. Поместите курсор туда, где вы хотите, и вставьте символ табуляции. (Ctrl+V в Windows).

Вуаля, готово!

8

Существует плагин Chrome, который называется Textarea Code Formatter.

Это позволяет вставлять вкладки в текстовые поля в браузере Chrome. Это также позволяет выделять несколько строк и вставлять вкладки перед каждой выбранной строкой.

Однако проблема заключается в том, что часто требуется стандартное поведение вставки вкладок. Если вы используете вкладку для переключения между полями, то вы можете выбрать "отключен" по умолчанию в настройках.

4

Если это ваш сайт:

Плагин jQuery: http://teddevito.com/demos/textarea.html

jQuery(document).ready(function () {

     $("textarea").tabby();

});

Сначала загрузите jQuery и плагин, затем вы можете сделать вкладку и сделать вкладку, а Shift + Tab как бы "untab".

Для поддержки всего браузера вам потребуется использовать расширение, пользовательский скрипт, плагин и т.д., Например: 46704 для Greasemonkey.

1

Я немного запутался с AutoHotkey, чтобы получить эту способность, и единственное «пуленепробиваемое» решение, которое я нашел, - это вставить (а не отправить) сам символ табуляции.

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

Оказывается, эта привязка AHK даже полезна в текстовых редакторах, которые дополнительно обрабатывают нажатие клавиши TAB; например. IDE настроен на использование автоиндентирования по пробелам.

1

Большим преимуществом Tabinta в Firefox является то, что вы можете сопоставить символ табуляции с другой горячей клавишей, поскольку вы действительно не хотите терять поведение клавиши Tab по умолчанию в браузере.

С Internet Explorer у вас нет решения в отношении расширений браузера, о которых я знаю. Здесь единственный способ - сохранить символ табуляции в буфере обмена, предварительно скопировав его из какой-либо другой программы, например блокнота.

Решения javascript требуют названия текстового поля, в котором они будут действовать, так что это далеко от идеала или практичности Хотя сочетания клавиш alt в обоих браузерах по-прежнему выполняют обычное событие нажатия символов табуляции, поэтому они также не работают.

0

Tab Grabber похож на Tabinta, только для Chrome (позволяет вкладки в полях textarea).

0

Используйте табби jQuerry! Поддерживает выделение строки и нажатие вкладки odr SHIFT TAB

http://www.herby.sk/trapped/bower_components/jquery-tabby/textarea.mirror.html

0

Чтобы ввести клавишу табуляции в текстовом поле, вы можете использовать такой скрипт (текстовое поле, которое принимает клавиши табуляции, называется 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}; ")

[C #]

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}; ");

Или лучше, чтобы избежать жесткого кодирования, вы можете поместить этот код в функцию с именем EnableTabType . Функция имеет только один параметр, который указывает, что такое элемент управления TextBox где необходимо включить ввод символов табуляции.

[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 

[C #]

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}; ");
}

Источник: http://www.beansoftware.com/ASP.NET-Tutorials/Access-Tab-Key.aspx

0

или используя ahk, чтобы вставить 4 * пробел в редакторе:

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

Вы можете увидеть объяснение деталей кода в ахк коде

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .