在我的应用程序中,我有一个文本区域和一个包含Code镜像支持的语言的选择列表。 当用户从选择列表中选择一种语言时,有人能告诉我如何更改代码镜像编辑器的模式(编程语言)吗?我是否需要手动加载所选模式的js文件?是否需要进行任何设置才能即时更改?我是否需要为所有支持的模式预加载js文件?谢谢!
答案 0 :(得分:1)
以这种方式这样做:
function loadModeForSelectedOption() {
var script = $("#mode option:selected").attr('data-script');
var mode = $("#mode option:selected").attr('data-mime-type');
loadJS(script, function () {
myCodeMirror.setOption("mode", mode);
});
}
function loadJS(src, callback) {
var s = document.createElement('script');
s.src = src;
s.async = true;
s.onreadystatechange = s.onload = function () {
var state = s.readyState;
if (!callback.done && (!state || /loaded|complete/.test(state))) {
callback.done = true;
callback();
}
};
document.getElementsByTagName('head')[0].appendChild(s);
}
选择带语言的列表(几个例子):
<option value=108
data-mime-type="text/x-csrc"
data-script="/Scripts/codemirror-2.37/mode/clike/clike.js">
C
</option>
<option value=110
data-mime-type="text/x-csharp"
data-script="/Scripts/codemirror-2.37/mode/clike/clike.js">
C#
</option>
<option value=109
data-mime-type="text/x-c++src"
data-script="/Scripts/codemirror-2.37/mode/clike/clike.js">
C++
</option>
答案 1 :(得分:1)