请考虑以下代码段:
HTML
<input type="text" id="mode" >
<div id="editor"></div>
捆绑了jQuery和Ace Editor的Javascript
$('#mode').on('change', function() {
createEditor($(this).val().toLowerCase());
});
function createEditor(mode) {
var editor = ace.edit('editor');
editor.renderer.setShowGutter(true);
editor.getSession().setMode("ace/mode/" + mode);
}
我想要实现的是动态设置编辑器会话的模式。所以当我输入&#34; javascript&#34; ace加载mode-javascript.js
。
但是当没有&#34;模式&#34;文件 - 我想回退到mode-text.js
。
现在 - 如果有人进入&#34; hdsajdlasjdl&#34;当然,请求返回404。
是否可以使用ace进行检查,还是必须预先定义支持哪些模式?
答案 0 :(得分:1)
Ace没有提供检测404错误的方法,但您可以在将模式设置为不存在模式之前将模式设置为文本,这种方式如果请求返回404模式将保留文本。
更好的方法是使用所有可用模式的内置列表https://github.com/ajaxorg/ace/blob/master/lib/ace/ext/modelist.js#L173
答案 1 :(得分:1)
<script src="ace/min-noconflict/ace.js"></script>
<script src="ace/min-noconflict/ext-modelist.js"></script>
<script>
var modelist = ace.require('ace/ext/modelist');
if(modelist.modesByName['hdsajdlasjdl'] == undefined) {
console.log("mode doesn't exist");
}
</script>