Sekme karakterini tarayıcı metin kutularına yazma


89

Bir web sayfasının metin kutusundaki metni biçimlendirmek istediğimde çoğu zaman Tabtuşa basacağım.

Ne yazık ki, bu sekme karakterini eklemez ancak bunun yerine kontrolü bir sonraki form öğesine taşır (bir düğme veya bir onay kutusu gibi).

Firefox / IE gibi tarayıcılar için, bir metin kutusundaki bir sekmenin biçimlendirme davranışını bir tuş kombinasyonu yazarak elde etmenin bir yolu var mı?

Yanıtlar:


10

Tabinta , bunu yapmanıza izin veren bir Firefox eklentisidir.


4
Chrome için herhangi bir çözüm var mı?
sorin

2
@ SorinSbarnea: Cevabımı gör
Janus Troelsen

Artık Firefox ile uyumlu değil.
rory.ap


Bu eklenti artık yok (sorunun cevabı olmadan, soru cevaplandığından ve Firefox çok değiştiğinden bu yana neredeyse on yıl geçti).
aoeu

63

Windows'ta Alt+ tuşlarına basabilirsiniz 09. Bu sadece sayı tuşlarıyla sayı tuşları ile çalışır. ( AltSon sayı tuşuna bastıktan sonra bırakın .)


3
NumPad tuşlarını kullandığınızdan emin olun
CatamountJack

@Chris: Bu talimatlara uyduğumda, bir sekme karakteri eklemiyor ama sekme tuşu gibi davranıyor. Bunu bir web tarayıcısında denedin mi?
Casebash

@Casebash Bu çok yorum penceresinde, Chrome'da, Windows 7 x64'te çalışır.
Chris

2
Yalnızca Windows ve sayısal tuş takımı olan bir klavyeniz varsa.
Mekanik salyangoz

1
... ve Chrome kullanıyorsanız. FF sekme anahtarı gibi görür, IE hiçbir şey yapmıyor gibi görünüyor. Yine, bu basit eski hack hatırlatmak için +1 :)
Halil Özgür

50

Linux ve diğer POSIX sistemleri (Mac OS hariç):

GTK + uygulamalarındaki sekmeleri girmek için (Firefox veya Chrome gibi):

  1. Ctrl+ Shift+U

  2. tip 9

  3. SpaceVeya tuşuna basınEnter

Kaynak: Wikipedia: Unicode Girişi


Aynı anda birden fazla çizgiyi girintiye almak için işe yarar ancak kullanışlı değildir.
MYGz

13

Mac OS X'te Safari ve Firefox'ta, ControlOptionTabdüzenlemekte olduğunuz metin alanına bir sekme eklemek için basabilirsiniz .


7
Görünüşe göre bu El Cap üzerindeki Chrome 50'de çalışmıyor
jcollum

1
Ne de Firefox 53'te Sierra'da.
Jason R. Coombs

1
@ JasonR.Coombs Hala Safari'de çalışıyor, bu yüzden ben bu cevabı yazdığımdan beri dört yıl içinde Firefox'ta bir şeyin değiştiğini varsaymak güvenli.
Daniel Beck

9

Not Defteri'ni veya benzeri bir metin düzenleyiciyi açın ve yeni bir boş belge başlatın. Yazın Tab. Sekme karakterinizi panoya kopyalayın. (Windows'ta, Ctrl+ A, Ctrl+ Cbunu yapar).

Şimdi tarayıcınızdaki textarea'ya geri dönün. İmleci istediğiniz yere getirin ve sekme karakterini yapıştırın. ( Windows'ta Ctrl+ V).

Voila, bitti!


1
Ciro, normal metin kutuları ve metin giriş alanları için mi, yoksa sadece "düzenlenebilir" öğeler için bozuk mu? O ..., o kadar çok insan (örneğin OP) etkiler olmayabilir "contenteditable" için sadece Sorun olacaksa Çünkü
Doin

2
Sık sık yapmanız gerekmedikçe, bu en basit çözümdü.
jcollum

8

Textarea Code Formatter adlı bir Chrome eklentisi var .

Chrome tarayıcısındaki metin kutularına sekmeler eklemenizi sağlar. Ayrıca, birden çok satırı vurgulamanıza ve seçilen her satırın önüne sekme eklemenize olanak sağlar.

Bununla birlikte, bir sorun genellikle standart sekme ekleme davranışı istemenizdir. Kutular arasında geçiş yapmak için sekme kullanırsanız, seçeneklerde varsayılan olarak "devre dışı" seçeneğini seçebilirsiniz.


4

Siteniz buysa:

jQuery eklentisi: http://teddevito.com/demos/textarea.html

jQuery(document).ready(function () {

     $("textarea").tabby();

});

Önce jQuery ve eklentiyi yükleyin, sonra sekme ve sekme yapabilirsiniz ve + sekmeyi "untab" a olduğu gibi kaydırın.

Tarayıcı genelinde destek için, Greasemonkey için 46704 gibi bir uzantı, kullanici, eklenti vb . Kullanmaniz gerekecektir .


Bağlantı öldü. Bütün bu jQuery şeylerinde ne var. Düz JavaScript kullanarak sekmeleri kabul etmenin bir yolu olmalı. JQuery eklentisi, zaten uygulanmış bir çözüm için her zaman iyidir, ancak gerçekte çözüm değildir.
Triynko

Bu şefi deneyin: stackoverflow.com/tr/13130
Grizly

1

Büyük avantajı Tabinta içinde Firefox gerçekten tarayıcıda sekme tuşu varsayılan davranışı kaybetmek istemiyorum çünkü sen, başka kısayol tuşu için sekme karakteri harita olabilir.

Internet Explorer ile tanıdığım tarayıcı uzantıları konusunda hiçbir çözümünüz yok. Burada tek yol, daha önce not defteri gibi başka bir programdan kopyalayarak sekme karakterini panoda tutmaktır.

Javascript çözümleri üzerinde çalışacakları metin kutusunun adını gerektirir, bu yüzden bu ideal veya pratik olmaktan uzaktır. Her iki tarayıcının altındaki alt anahtar kodu kombinasyonları normal sekme karakterindeki tuşa basma olayını yürütür, bu nedenle de çalışmazlar.


1

AutoHotkey ile bu yeteneği elde etmek için biraz uğraştım ve bulduğum tek 'kurşun geçirmez' çözüm gerçekten sekme karakterini yapıştırmak (göndermek değil).

;
; TAB character
; pasted from clipboard
; win tab
;
#tab::
old_clip:=clipboard
clipboard:=A_Tab
clipWait
sendInput,^v
clipboard:=old_clip
clipWait
return

Bu AHK bağının, TAB tuş vuruşunu fazladan tutan metin editörlerinde bile yararlı olduğu ortaya çıktı; Örneğin. IDE tarafından boşlukları otomatik olarak kullanacak şekilde yapılandırılmış.




0

Sekme tuşunu bir metin kutusuna yazmak için, böyle bir betiği kullanabilirsiniz (sekme anahtarlarını kabul eden metin kutusu 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}; ");

Veya daha iyisi, zor kodlamayı önlemek için bu kodu adlandırılmış bir fonksiyona koyabilirsiniz EnableTabType. İşlev, TextBoxSekme karakterlerini yazmayı etkinleştirmeniz gereken yerde kontrolün ne olduğunu belirten yalnızca bir parametreye sahiptir .

[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}; ");
}

Kaynak: http://www.beansoftware.com/ASP.NET-Tutorials/Access-Tab-Key.aspx


0

veya editöre 4 * boşluk eklemek için ahk kullanmak:

^Right::
tabspace:="    "
send,%tabspace%    
return 

ahk kodunda kod detaylarının açıklamasını görebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.