我希望我能把自己说得足够清楚,让你明白。
我正在尝试将 ace 集成到我的网站中。唯一的问题是,如果我使用 tab 键,文本不会重新定位。此外,如果我单击内部开始编辑,该字符将被插入左侧 4 个字符。我认为\t
角色没有被绘制出来。
这就是现在的样子,但是<h1>
and<p>
标记应该缩进 1 个选项卡(并且选择和编辑的行为就像已绘制选项卡一样)。
按以下顺序从 src-min-noconflict 加载 ace 文件:
- 王牌.js
- 模式-html.js
- 主题终端.js
激活编辑器的代码
$(document).ready(function(){
var editor = ace.edit('editor');
editor.setTheme('ace/theme/terminal');
editor.getSession().setMode('ace/mode/html');
editor.getSession().setFoldStyle('manual');
editor.setSelectionStyle('line');
editor.setHighlightActiveLine(true);
editor.setShowInvisibles(false);
editor.setDisplayIndentGuides(true);
editor.renderer.setHScrollBarAlwaysVisible(false);
editor.setAnimatedScroll(false);
editor.renderer.setShowGutter(true);
editor.renderer.setShowPrintMargin(false);
editor.getSession().setUseSoftTabs(false);
editor.setHighlightSelectedWord(true);
$('textarea[name="new_content"]').hide();
editor.getSession().setValue($('textarea[name="new_content"]').val());
$('form.form-textarea').on('submit', function(){
$('textarea[name="new_content"]').val(editor.getSession().getValue());
});
});
CSS
#editor {
position: relative;
height: 300px;
font-family: Monaco, Menlo, 'Ubuntu Mono', Consolas, source-code-pro, monospace;
}
HTML
<textarea name="new_content" class="hide">{ filled by the server with html }</textarea>
<div id="editor"></div>