我正在使用CodeMirror编辑器。它有一个允许改变模式(语言)的选项。我创建了一段代码来加载与该语言对应的.js文件。请参阅下面的代码。一切都很好。带有src属性的script元素被添加到head,但是codemirror编辑器不加载语言,因为script元素是用head编写的,但它可能没有加载。
正确加载在html文件中编写的python突出显示js脚本。只有动态加载的js文件不能处理codemirror。
请帮帮我,我修不好。
languageselect.addEventListener("change",function(){
language = languageselect.value ;
let header = document.head;
let script = document.createElement("script");
script.src = "codemirror/mode/" + language + "/" + language + ".js";
header.appendChild(script);
editor.setOption("mode",language);
});<script src="codemirror/mode/python/python.js"></script>
<!--The python highlighting js script which is written in the html file is loading correctly. Only the dynamically loaded js file aren't working with codemirror.-->
发布于 2019-01-26 08:08:05
我找到了解决的办法。在创建脚本元素的属性时,创建onload属性,该属性将运行一个函数来更改CodeMirror编辑器的模式:
languageselect.addEventListener("change",function(){
language = languageselect.value ;
src = "codemirror/mode/" + language + "/" + language + ".js";
let header = document.head;
let script = document.createElement("script");
script.src = src;
script.onload = change_language;
header.appendChild(script);
});
function change_language(){
language = languageselect.value;
editor.setOption("mode",language);
};
https://stackoverflow.com/questions/54373776
复制相似问题