Я использую редактор CodeMirror. И у него есть опция, которая позволяет изменить режим (язык). Я создал код для загрузки файла .js, который соответствует языку. См. код ниже. Все работает нормально. элемент script с его атрибутом src добавляется в голову, но редактор codemirror не загружает язык, потому что элемент сценария написан в голове, но, вероятно, не загружен.
Сценарий js с подсветкой python, написанный в html-файле, загружается правильно. Только динамически загружаемые файлы 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.-->Вы знакомы с использованием инструментов разработки? Проверьте панель «Сеть» и убедитесь, что скрипт вообще загружается.
@RandyCasburn без ошибок. Просто не загружается в браузере
@CodeSpent Я использую инструменты разработчика, чтобы взглянуть на код. Я могу открыть и прочитать динамически добавленный файл js.
следующий вопрос: работает ли редактор в iFrame?
@RandyCasburn Нет, я просто открываю html-файл в браузере.
Думаю, тогда нам понадобится больше данных для устранения неполадок. Дайте нам какой-нибудь код, который мы можем проверить на скрипке.
@CodeSpent, ты не можешь. Codemirror должен быть загружен
Это не важно, мы можем использовать другие источники, так как нас не волнует ничего, кроме загрузки скрипта. С тем, что вы предоставили в настоящее время, мы ничего не можем сделать, кроме как задавать вам вопросы, что неэффективно.
Предоставленный вами код должен: разрешить нам инициировать событие изменения и добавить его в заголовок.
Я нашел, как это исправить, спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я нашел, как это исправить. При создании атрибутов элемента скрипта создайте атрибут 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);
};
Какие ошибки появляются в консоли?