我使用的是summernote富文本编辑器,下面是我的要求
编辑器是一个包含大量字段的长格式的一部分
即使其自定义功能确实建议
答案 0 :(得分:0)
您可以将以下答案的各个方面结合起来:
这是一个例子。它使用 Shift - Tab 而不是 Ctrl - Tab ,因为浏览器似乎阻止覆盖默认值 Ctrl - Tab beahviour(至少在Mac上的Chrome中)。它应该适用于所有主流浏览器,包括旧的IE回到版本6.
function insertTextAtCursor(text) {
var sel, range, html;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
var textNode = document.createTextNode(text);
range.insertNode(textNode);
/* Move the caret to be immediately after the inserted text */
range.setStartAfter(textNode);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
} else if (document.selection && document.selection.createRange) {
document.selection.createRange().text = text;
}
}
function allowShiftTabChar(el) {
$(el).keydown(function(e) {
if (e.which == 9 && e.shiftKey) {
insertTextAtCursor("\t");
e.preventDefault();
e.stopPropagation();
}
});
/* For old Opera, which only allows suppression of keypress events, not keydown */
$(el).keypress(function(e) {
if (e.which == 9 && e.shiftKey) {
e.preventDefault();
e.stopPropagation();
}
});
}
$(document).ready(function() {
allowShiftTabChar( $("#editor")[0] );
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<pre contenteditable="true" id="editor">
This is editable
Try press tab somewhere
</pre>
&#13;
答案 1 :(得分:0)
实际上它很简单。我刚刚在summernote.js中禁用了tab和shift + tab键的代码:)