Введення символу вкладки у текстові поля браузера


89

Багато часу, коли я хочу форматувати текст у текстовому полі веб-сторінки, я натискаю Tabклавішу.

На жаль, він не вставляє символ вкладки, а замість цього переміщує елемент керування до наступного елемента форми (наприклад, кнопки чи прапорця).

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

Відповіді:


10

Tabinta - це доповнення для Firefox, яке дозволяє це робити.


4
Будь-яке рішення для Chrome?
sorin

2
@SorinSbarnea: Дивіться мою відповідь
Janus Troelsen

Він більше не сумісний з Firefox.
rory.ap

Це плагін, який працює у Firefox 64: addons.mozilla.org/en-US/firefox/addon/textarea-tabbing
Stefan_Fairphone

Цей плагін більше не існує (без вини відповіді минуло майже десятиліття з часу відповіді на запитання і Firefox сильно змінився).
aoeu

63

У Windows можна натиснути Alt+ 09. Це працює лише з цифровими клавішами з цифровою клавіатурою. (Відпустіть Altпісля натискання останньої цифрової клавіші.)


3
Будьте впевнені, що використовуєте клавіші NumPad
CatamountJack,

@Chris: Коли я дотримуюся цих точних вказівок, він не вставляє символ вкладки, а діє як клавіша вкладки. Ви пробували це в веб-браузері?
Casebash

@Casebash Це працює у цьому дуже віконці коментарів, у Chrome, у Windows 7 x64.
Кріс

2
Тільки якщо у вас є Windows та клавіатура з numpad.
Механічний равлик

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
Ciro, чи це порушено для звичайних текстових полів та полів для введення тексту, чи просто "змістовних" елементів? Тому що, якщо це просто проблема для "задоволених", це може не зачіпати багатьох людей (наприклад, ОП) ...
Doin

2
Це було найпростішим рішенням, якщо вам не потрібно робити це часто.
jcollum

8

Існує плагін Chrome під назвою Textarea Code Formatter .

Він дозволяє вставляти вкладки в текстові поля в браузері Chrome. Це також дозволяє виділити кілька рядків і вставити вкладки перед кожним вибраним рядком.

Однак проблема полягає в тому, що часто потрібно стандартну поведінку вставки вкладки. Якщо ви використовуєте вкладку для перемикання між полями, ви можете вибрати опцію "вимкнено" за замовчуванням у параметрах.


4

Якщо це ваш сайт:

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

jQuery(document).ready(function () {

     $("textarea").tabby();

});

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

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


Посилання мертва. Що з усіма цими матеріалами jQuery. Має бути спосіб приймати вкладки, використовуючи звичайний JavaScript. Плагін jQuery завжди приємний для вже реалізованого рішення, але це насправді не рішення.
Трайнко

Спробуйте це головний: stackoverflow.com/a/13130
Grizly

1

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

З 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

Tab Grabber схожий на Tabinta, лише для Chrome (дозволяє TAB-адреси в полях текстових областей).



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управління, де потрібно включити введення символів 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 

[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.