网页的添加JS只能在引用完毕后的函数里面执行相关的JS函数吗?
放在其它地方调用JS函数,报错找不到JS中的函数....
不能像以前一样用引用 来引入了吗?我记得以前直接引用之后 不管在哪都能调用里面的函数。
放到引用完成之后的函数下面才能调用这个函数。但是JS调用的执行顺序又有问题了....
理论上应该不会出现这个问题,因为目前的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);
}
理论上应该不会出现这个问题,因为目前的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标签)则不需要指定该回调函数。