พิมพ์อักขระแท็บในกล่องข้อความของเบราว์เซอร์


89

Tabบ่อยครั้งที่ฉันต้องการจัดรูปแบบข้อความภายในกล่องข้อความของเว็บเพจฉันจะกดแป้น

น่าเสียดายที่ไม่ได้แทรกอักขระแท็บ แต่จะย้ายตัวควบคุมไปยังองค์ประกอบของฟอร์มถัดไปแทน (เช่นปุ่มหรือกล่องกาเครื่องหมาย)

สำหรับเบราว์เซอร์เช่น Firefox / IE มีวิธีการจัดรูปแบบพฤติกรรมของแท็บภายในกล่องข้อความโดยพิมพ์คีย์ผสมหรือไม่?

คำตอบ:


10

Tabintaเป็นส่วนเสริมของ Firefox ที่ให้คุณทำสิ่งนี้ได้


4
มีวิธีแก้ปัญหาสำหรับ Chrome ไหม?
โซริน

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 และแป้นพิมพ์ที่มีตัวเลข
หอยทากเครื่องกล

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

ที่มา: Wikipedia: Unicode Input


มันใช้งานได้ แต่ไม่มีประโยชน์สำหรับการเยื้องหลายบรรทัดในครั้งเดียว
MYGz

13

ใน Safari และ Firefox บน Mac OS X คุณสามารถกดControlOptionTabเพื่อแทรกแท็บในฟิลด์ข้อความที่คุณกำลังแก้ไข


7
ดูเหมือนว่าสิ่งนี้จะไม่ทำงานใน Chrome 50 บน El Cap
jcollum

1
หรือบน Firefox 53 บน Sierra
Jason R. Coombs

1
@ JasonR.Coombs ยังคงใช้งานได้ใน Safari ดังนั้นจึงปลอดภัยที่จะสมมติว่ามีบางสิ่งเปลี่ยนแปลงใน Firefox ในช่วงสี่ปีที่ผ่านมาตั้งแต่ฉันเขียนคำตอบนี้
Daniel Beck

9

เปิด Notepad หรือโปรแกรมแก้ไขข้อความที่คล้ายกันและเริ่มเอกสารเปล่าใหม่ ประเภทTab. คัดลอกอักขระแท็บของคุณไปยังคลิปบอร์ด (บน Windows, Ctrl+ A, Ctrl+ Cจะทำสิ่งนี้)

ตอนนี้สลับกลับไปเป็น textarea ในเบราว์เซอร์ของคุณ วางเคอร์เซอร์ในตำแหน่งที่คุณต้องการแล้ววางอักขระแท็บ ( Ctrl+ Vบน Windows)

Voila เสร็จแล้ว!


1
Ciro ใช้งานไม่ได้กับกล่องข้อความและช่องป้อนข้อความปกติหรือเป็นเพียงองค์ประกอบ "ที่พึงพอใจ" เพราะถ้ามันเป็นเพียงปัญหาสำหรับ "contenteditable" มันอาจไม่ส่งผลกระทบต่อคนจำนวนมาก (ตัวอย่างเช่น OP) ...
Doin

2
นี่เป็นวิธีที่ง่ายที่สุดเว้นแต่คุณจะต้องทำสิ่งนี้บ่อยครั้ง
jcollum

8

มีปลั๊กอิน Chrome เรียกว่าเป็นtextarea รหัสฟอร์แมต

ช่วยให้คุณสามารถแทรกแท็บลงในกล่องข้อความในเบราว์เซอร์ Chrome นอกจากนี้ยังช่วยให้คุณสามารถเน้นหลายบรรทัดและแท็บแทรกก่อนแต่ละบรรทัดที่เลือก

อย่างไรก็ตามปัญหาคือบ่อยครั้งที่คุณต้องการพฤติกรรมการแทรกแท็บมาตรฐาน หากคุณใช้แท็บเพื่อสลับระหว่างกล่องคุณอาจเลือก "ปิดการใช้งาน" โดยค่าเริ่มต้นในตัวเลือก


4

หากเป็นเว็บไซต์ของคุณ:

ปลั๊กอิน jQuery: http://teddevito.com/demos/textarea.html

jQuery(document).ready(function () {

     $("textarea").tabby();

});

โหลด jQuery และปลั๊กอินก่อนจากนั้นคุณสามารถแท็บและสร้างแท็บแล้วเลื่อน + tab ไปที่ "untab" ตามเดิม

สำหรับการสนับสนุนเบราว์เซอร์กว้างคุณจะต้องใช้ส่วนขยาย, UserScript ปลั๊กอิน ฯลฯ ที่ชอบ: 46704 สำหรับGreasemonkey


ลิงก์ตาย มีอะไรกับทุกสิ่ง jQuery นี้ จะต้องมีวิธียอมรับแท็บโดยใช้ JavaScript ธรรมดา ปลั๊กอิน jQuery นั้นดีสำหรับโซลูชันที่นำไปใช้งานแล้ว แต่ไม่ได้แก้ปัญหาจริงๆ
Triynko

ลองใช้หัวหน้านี้: stackoverflow.com/a/13130
Grizly

1

ข้อได้เปรียบที่สำคัญของTabintaในFirefoxคือคุณสามารถแมปอักขระแท็บกับฮอตคีย์อื่นได้เนื่องจากคุณไม่ต้องการสูญเสียการทำงานเริ่มต้นของคีย์แท็บในเบราว์เซอร์

ด้วยInternet Explorerคุณไม่มีวิธีการแก้ไขในส่วนขยายของเบราว์เซอร์ที่ฉันรู้ นี่คือวิธีเดียวที่จะทำให้อักขระแท็บในคลิปบอร์ดได้โดยคัดลอกมาจากโปรแกรมอื่น ๆ เช่น notepad

โซลูชัน 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 กำหนดค่าให้ใช้ autoindent-by-spaces




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 

คุณสามารถดูรายละเอียดรหัสอธิบายในรหัส ahk

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.