Много времени, когда я захочу отформатировать текст в текстовом поле веб-страницы, я поражу клавишу Tab.
К сожалению, это не вставляет символ табуляции, но вместо этого перемещает управление в следующий элемент формы (как кнопка или флажок).
Для браузеров как Firefox/IE, там способ получить поведение форматирования вкладки, в текстовом поле, путем ввода сочетания клавиш?
Большое преимущество Tabinta в Firefox состоит в том, что можно отобразить символ табуляции на другую горячую клавишу, так как Вы действительно не хотите терять поведение значения по умолчанию клавиши Tab в браузере.
С Internet Explorer у Вас нет решения в способе расширений браузера, о которых я знаю. Здесь единственный путь состоит в том, чтобы сохранить символ табуляции в буфере обмена тем, что ранее скопировал его с некоторой другой программы как блокнот.
решения JavaScript требуют названия текстового поля, где они будут действовать на, таким образом, это будет совсем не идеально или практично. В то время как комбинации кода клавиши высокого звука под обоими браузерами все еще выполняют нормальное событие нажатия клавиши символа табуляции, таким образом, они не работают также.
Для ввода клавиши 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
Если это - Ваш сайт:
плагин jQuery: http://teddevito.com/demos/textarea.html
jQuery(document).ready(function () {
$("textarea").tabby();
});
Загрузите jQuery и плагин сначала, затем можно снабдить вкладками и сделать вкладку и shift+tab к "невкладке", как это было.
Для поддержки всего браузера необходимо будет использовать расширение, userscript, плагин, и т.д. как: 46704 для Механика.
Я смешал остроумие 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, настроенный для использования автоматического отступа пробелами.