在浏览器文本框中键入制表符


89

很多时候,当我想格式化网页文本框中的文本格式时,我会Tab按键。

不幸的是,这不会插入制表符,而是将控件移至下一个表单元素(如按钮或复选框)。

对于Firefox / IE这样的浏览器,是否可以通过键入组合键来在文本框中获取选项卡的格式化行为?

Answers:



63

在Windows中,您可以按Alt+ 09。这仅适用于数字键盘的数字键。(Alt按最后一个数字键后释放。)


3
确保使用NumPad键
CatamountJack 2010年

@克里斯:当我按照那些确切的说明进行操作时,它不会插入制表符,而是像制表键一样。您是否在网络浏览器中尝试过此操作?
Casebash 2010年

@Casebash它在Windows 7 x64的Chrome浏览器的此非常注释窗口中工作。
克里斯(Chris)2010年

2
仅当您具有Windows和带小键盘的键盘时。
机械蜗牛

1
...,如果您使用的是Chrome。FF就像按Tab键一样,IE似乎什么也没做。同样,+ 1是提醒这个简单的古老技巧:)
HalilÖzgür


13

在Mac OS X上的Safari和Firefox中,您可以按ControlOptionTab将标签页插入当前正在编辑的文本字段中。


7
看起来这在El Cap的Chrome 50中不起作用
jcollum

1
在Sierra上的Firefox 53上也没有。
杰森·库姆斯

1
@ JasonR.Coombs仍然可以在Safari中使用,因此可以放心地假设自从我撰写此答案以来的四年中,Firefox中发生了一些变化。
丹尼尔·贝克

9

打开记事本或类似的文本编辑器,然后启动一个新的空白文档。输入Tab。将制表符复制到剪贴板。(在Windows上,Ctrl+ ACtrl+ C将执行此操作)。

现在,在浏览器中切换回文本区域。将光标放在所需的位置,然后粘贴制表符。(在Windows上为Ctrl+ V)。

瞧,完成了!


1
Ciro,对于常规的文本框和文本输入字段还是“ contenteditable”元素而言,它是否损坏?因为如果这只是“内容可编辑”的问题,它可能不会影响那么多人(例如OP)...
Doin 2015年

2
这是最简单的解决方案,除非您需要经常这样做。
jcollum

8

有一个名为Textarea Code Formatter的Chrome插件。

它允许您将标签页插入Chrome浏览器的文本框中。它还允许您突出显示多行,并在每个选定行之前插入选项卡。

但是,问题在于,通常您希望使用标准的制表符插入行为。如果确实使用制表符在各个框之间切换,则默认情况下,您可以在选项中选择“禁用”。


4

如果是您的网站:

jQuery插件:http : //teddevito.com/demos/textarea.html

jQuery(document).ready(function () {

     $("textarea").tabby();

});

首先加载jQuery和插件,然后您可以制表并创建一个选项卡,然后按Shift + Tab键将其原样保存为“ untab”。

为了获得浏览器范围的支持,您将必须使用扩展程序,用户脚本,插件等,如:Greasemonkey的 46704 。


链接已死。所有这些jQuery东西是什么。必须有一种使用纯JavaScript接受标签的方法。jQuery插件对于已经实施的解决方案总是很不错的,但并不是真正的解决方案。
Triynko 2014年

试试这个负责人:stackoverflow.com/a/13130
Grizly 2014年

1

的一大优点TabintaFirefox的是,你可以在制表符映射到另一个热键,因为你真的不想失去在浏览器中的Tab键默认行为。

使用Internet Explorer,您无法解决我所知道的浏览器扩展方式。在这里,唯一的方法是通过从记事本等其他程序中复制制表符来将制表符保留在剪贴板中。

javascript解决方案需要使用文本框的名称,因此这远非理想或实用。尽管两种浏览器下的alt键代码组合仍会执行常规的制表符字符keypress事件,所以它们也不起作用。


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键,可以使用如下脚本(将接受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在启用键入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 

您可以在ahk代码中查看代码详细说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.