如何将随机script.js文件加载至单个script标签?原有代码失效如何解决
随机加载JS文件的实现修复方案
原代码无法生效的核心原因是:修改已经存在于DOM中的script标签的src属性,浏览器不会自动加载新的JS文件,script标签的加载行为仅在首次插入DOM时触发。
修复后可用代码
// 生成1-5的随机数 var randomTest = Math.floor(Math.random() * 5) + 1; // 拼接完整JS文件路径 var questionSource = "js/test" + randomTest + ".js"; // 创建全新的script标签 var newScript = document.createElement('script'); // 设置JS文件路径 newScript.src = questionSource; // 可选:设置加载完成回调 newScript.onload = function() { console.log(questionSource + ' 加载完成'); }; // 可选:设置加载失败回调 newScript.onerror = function() { console.log(questionSource + ' 加载失败,请检查路径是否正确'); }; // 将新的script标签插入到head末尾触发加载 document.head.appendChild(newScript);
注意事项
- 请确保
js目录下存在test1.js到test5.js共5个文件,路径拼写完全匹配 - 如果需要优先加载该JS,可以把
appendChild替换为document.head.insertBefore(newScript, document.head.firstChild),插入到head最前面 - 不要重复插入同一个路径的script标签,避免重复执行JS内容
内容的提问来源于stack exchange,提问作者Ahad Karim
相关产品推荐
相关产品推荐

