普通用户
网页的添加JS只能在引用完毕后的函数里面执行相关的JS函数吗? [复制链接]
榕均 发表于 2025-08-15 63 2

网页的添加JS只能在引用完毕后的函数里面执行相关的JS函数吗?
放在其它地方调用JS函数,报错找不到JS中的函数....

不能像以前一样用引用 来引入了吗?我记得以前直接引用之后 不管在哪都能调用里面的函数。

放到引用完成之后的函数下面才能调用这个函数。但是JS调用的执行顺序又有问题了....

榕均 2025-08-18
引用 @Course 的回复:

理论上应该不会出现这个问题,因为目前的JS添加函数与使用标签添加效果是一样的。

先检查一下JS文件中函数是否存在、然后检查一下JS文件是否存在语法错误。

如果都没有问题的话,可以尝试调整一下添加顺序试试,例如:

函数 加载JS测试()
    ' 假设必须要先加载JS1再执行JS2中的函数
    添加JS文件("../static/js1.js","UTF-8",(文件地址)=>{
        ' 加载js1之后再添加js2
        添加JS文件("../static/js2.js","UTF-8",(文件地址)=>{
            ' 执行函数
            
        })
    })
结束 函数

另外这个JS回调函数、主要是实现加载JS文件后就立即调用文件中的指定函数,如果只是单纯的添加JS(类似使用s-cript标签)则不需要指定该回调函数。

如果不给后面的添加完毕参数会报错

Uncaught TypeError: listner is not a function at j.onload ()

j.onload@
添加JS文件@
页面加载完毕@
window.onload@

function 添加JS文件(filePath, charset, listner) {
var j = document.createElement("");
j.src = filePath;
j.type = "text/java";
if (!charset) {
charset = "utf-8";
}
j.charset = charset;
j.onload = function () {
listner(filePath);//这里报错
};
document.getElementsByTagName("head").item(0).appendChild(j);
}

回复
官方技术组 2025-08-16

理论上应该不会出现这个问题,因为目前的JS添加函数与使用标签添加效果是一样的。

先检查一下JS文件中函数是否存在、然后检查一下JS文件是否存在语法错误。

如果都没有问题的话,可以尝试调整一下添加顺序试试,例如:

函数 加载JS测试()
    ' 假设必须要先加载JS1再执行JS2中的函数
    添加JS文件("../static/js1.js","UTF-8",(文件地址)=>{
        ' 加载js1之后再添加js2
        添加JS文件("../static/js2.js","UTF-8",(文件地址)=>{
            ' 执行函数
            
        })
    })
结束 函数

另外这个JS回调函数、主要是实现加载JS文件后就立即调用文件中的指定函数,如果只是单纯的添加JS(类似使用s-cript标签)则不需要指定该回调函数。

回复
 作者信息
榕均
USB专业用户
榕均
专业开发指导服务

响应时间:5分钟

服务方式:官方1对1服务

工作时间:工作日 9:00 - 18:30

专业团队 · 开发指导 · 极速响应


官网 | 基础视频教程 | 在线文档 下载 VcnStudio IDE

© VcnStudio Inc All Rights Reserved

蜀ICP备17024229号