Javascript Ace编辑器:确定模式是否存在
考虑以下代码段: HTML 我试图实现的是动态设置编辑器会话的模式。所以当我输入“javascript”时,ace加载Javascript Ace编辑器:确定模式是否存在,javascript,ace-editor,Javascript,Ace Editor,考虑以下代码段: HTML 我试图实现的是动态设置编辑器会话的模式。所以当我输入“javascript”时,ace加载模式javascript.js 但是当没有“mode”文件时,我想退回到modetext.js 现在-如果有人输入“hdsajdlasjdl”,请求当然会返回404 使用ace检查是否可行,或者我是否必须预先定义支持哪些模式?ace不提供检测404错误的方法,但您可以在将模式设置为不存在模式之前将其设置为文本,这样,如果请求返回404模式,则仍将保留文本 更好的方法是使用所有可用
模式javascript.js
但是当没有“mode”文件时,我想退回到modetext.js
现在-如果有人输入“hdsajdlasjdl”,请求当然会返回404
使用ace检查是否可行,或者我是否必须预先定义支持哪些模式?ace不提供检测404错误的方法,但您可以在将模式设置为不存在模式之前将其设置为文本,这样,如果请求返回404模式,则仍将保留文本 更好的方法是使用所有可用模式的内置列表 var modelist=ace.require('ace/ext/modelist'); if(modelist.modesByName['hdsajdlasjdl']==未定义){ log(“模式不存在”); }
如何调用此modelist中的
getModeForPath()
-函数?这个函数正好满足我的需要。
<input type="text" id="mode" >
<div id="editor"></div>
$('#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);
}
<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>