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

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

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

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

89
задан 17.03.2014, 19:43

6 ответов

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

9
ответ дан 07.12.2019, 07:59

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

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

решения JavaScript требуют названия текстового поля, где они будут действовать на, таким образом, это будет совсем не идеально или практично. В то время как комбинации кода клавиши высокого звука под обоими браузерами все еще выполняют нормальное событие нажатия клавиши символа табуляции, таким образом, они не работают также.

1
ответ дан 07.12.2019, 07:59

Для ввода клавиши Tab в текстовом поле можно использовать сценарий как это (текстовое поле, которое признает, что клавиши Tab называют 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
ответ дан 07.12.2019, 07:59

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

63
ответ дан 07.12.2019, 07:59

Если это - Ваш сайт:

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

jQuery(document).ready(function () {

     $("textarea").tabby();

});

Загрузите jQuery и плагин сначала, затем можно снабдить вкладками и сделать вкладку и shift+tab к "невкладке", как это было.

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

4
ответ дан 07.12.2019, 07:59

Я смешал остроумие 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
ответ дан 07.12.2019, 07:59

Теги

Похожие вопросы