Ввод символа табуляции в текстовых полях браузера


89

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

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

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

Ответы:


9

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


4
Любое решение для Chrome?
— сорин

2
@SorinSbarnea: Смотрите мой ответ
— Янус Троелсен

Это больше не совместимо с Firefox.
— rory.ap

Это плагин, который работает в Firefox 64: addons.mozilla.org/en-US/firefox/addon/textarea-tabbing
— Stefan_Fairphone

1
Этот плагин больше не существует (без вины ответа, прошло почти десять лет с тех пор, как на вопрос был дан ответ, и Firefox сильно изменился).
— aoeu

63

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


4
Убедитесь, что вы используете клавиши NumPad
— CatamountJack

@ Крис: Когда я следую этим точным инструкциям, он не вставляет символ табуляции, а действует как клавиша табуляции. Вы пробовали это в веб-браузере?
— Casebash

@Casebash Это работает в этом самом окне комментариев, в Chrome, в Windows 7 x64.
— Крис

2
Только если у вас есть Windows и клавиатура с цифровой клавиатурой.
— Механическая улитка

1
... и если вы используете Chrome. FF видит это как клавишу табуляции, IE, похоже, ничего не делает. Снова +1 за напоминание об этом простом старом хаке :)
— Halil Özgür

50

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

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

  1. Ctrl+ Shift+U

  2. Тип 9

  3. Нажмите SpaceилиEnter

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


Это работает, но не полезно для отступа нескольких строк одновременно.
— MYGz

13

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


7
Похоже, это не работает в Chrome 50 на El Cap
— jcollum

1
Ни на Firefox 53 на Сьерра.
— Джейсон Р. Кумбс

1
@ JasonR.Coombs По-прежнему работает в Safari, поэтому можно предположить, что что-то изменилось в Firefox за четыре года, прошедшие с того момента, как я написал этот ответ.
— Даниэль Бек

9

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

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

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


1
Сиро, это сломано для обычных текстовых полей и полей ввода текста, или просто "contenteditable" элементов? Потому что если это просто проблема для «contenteditable», это может не повлиять на такое количество людей (например, на OP) ...
— Doin

2
Это было самое простое решение, если вам не нужно делать это часто.
— Jcollum

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 .


Ссылка мертва. Что со всем этим JQuery? Должен быть способ принимать вкладки, используя простой JavaScript. Плагин jQuery всегда хорош для уже реализованного решения, но на самом деле это не решение.
— Трийнко

Попробуйте этот шеф: stackoverflow.com/a/13130
— Grizly

1

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

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

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


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 настроен на использование автоиндентирования по пробелам.




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 

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.