我正在制作一个基于Web的代码编辑器,并使用文本区域进行文本编辑。我想为文本区域添加标签支持,以便按下标签不会使元素失去焦点。
我已经定义了文本区域如下:
<textarea id="codeEdit_txt" rows="50" cols="80" onkeydown="return codeEdit_keyDown(event);">
并且函数codeEdit_keyDown定义如下:function codeEdit_keyDown(e) {
if (e.keyCode == 9) {
return false;
}
}
这可以防止按下Tab键使文本区失去焦点,但不会留下Tab字符。在我最初尝试使其工作时,我注意到如果将函数定义如下,它会在光标位置放置一个Tab字符。
function codeEdit_keyDown(e) {
if (e.keyCode == 9) {
alert("");
return false;
}
}
我的两个问题是:
- 为什么添加一个警告框会导致添加一个选项卡?
- 是否有一种方法可以在光标位置添加选项卡,而不必查找光标位置、拆分文本区域中的文本并手动添加制表符(而且不必每次用户按下Tab键时都弹出警告框)?
谢谢
编辑:这只在Chrome中有效,而IE、Safari或Firefox中无效。