首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态添加的带有src属性的script元素不会在src中加载js文件

动态添加的带有src属性的script元素不会在src中加载js文件
EN

Stack Overflow用户
提问于 2019-01-26 06:44:12
回答 1查看 293关注 0票数 1

我正在使用CodeMirror编辑器。它有一个允许改变模式(语言)的选项。我创建了一段代码来加载与该语言对应的.js文件。请参阅下面的代码。一切都很好。带有src属性的script元素被添加到head,但是codemirror编辑器不加载语言,因为script元素是用head编写的,但它可能没有加载。

正确加载在html文件中编写的python突出显示js脚本。只有动态加载的js文件不能处理codemirror。

请帮帮我,我修不好。

代码语言:javascript
运行
复制
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);
      });
代码语言:javascript
运行
复制
<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.-->

EN

回答 1

Stack Overflow用户

发布于 2019-01-26 08:08:05

我找到了解决的办法。在创建脚本元素的属性时,创建onload属性,该属性将运行一个函数来更改CodeMirror编辑器的模式:

代码语言:javascript
运行
复制
      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);
      };

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54373776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档