Javascript 页面加载后动态创建的脚本src,在初始化脚本中的函数时出错

Javascript 页面加载后动态创建的脚本src,在初始化脚本中的函数时出错,javascript,lightcase.js,Javascript,Lightcase.js,我试图延迟加载非关键JS文件。它适用于.css文件,但不适用于.js文件 例如,我正在使用lightcase,我正在尝试创建一个脚本链接,附加src,然后作为一个孩子将其附加到正文,但是当我有(…)时,这种方式。lightcase函数在页脚中表示“lightcase不是函数” var phplink=“”; 变量链接=[ phplink+“swiper/package/css/swiper.min.css”, phplink+“chunks/psw/dist/photosweep.min.css

我试图延迟加载非关键JS文件。它适用于.css文件,但不适用于.js文件

例如,我正在使用lightcase,我正在尝试创建一个
脚本
链接,附加
src
,然后作为一个孩子将其附加到
正文
,但是当我有(…)时,这种方式。lightcase函数在页脚中表示“lightcase不是函数”

var phplink=“”;
变量链接=[
phplink+“swiper/package/css/swiper.min.css”,
phplink+“chunks/psw/dist/photosweep.min.css”,
phplink+“chunks/psw/dist/default skin/default skin.min.css”,
phplink+“chunks/videa/vid.min.css”,
phplink+“chunks/videa/lightcase/src/css/lightcase.min.css”,
phplink+“assets/css/font-awesome.min.css”,
phplink+“chunks/videa/lightcase/src/js/lightcase.min.js”,
phplink+“chunks/videa/lightcase/vendor/jQuery/jQuery.events.touch.min.js”,
phplink+“swiper/package/js/swiper.min.js”
];
变量类型=[
“css”,
“css”,
“css”,
“css”,
“css”,
“css”,
“js”,
“js”,
“js”
];
对于(变量i=0;i
我对JS非常业余,但这很有效。我只需输入类型和链接,它就可以自己工作了。我对这种逻辑更感兴趣。所有这些都包含在我的ready纯javascript函数中

功能就绪(fn){
如果(document.readyState!=“正在加载”){
fn();
}否则{
文件。addEventListener('DOMContentLoaded',fn);
}
}
让isMobile=window.matchMedia(“仅屏幕和(最大宽度:760px)”).matches;
就绪(函数(){
//这里
}
下面是我的初始化脚本:

$('a[data rel^=lightcase]')。lightcase({
//东西
)
};
此初始化脚本无法引用生成脚本中引用的lightcase.js。我尝试将生成脚本放置在
就绪(fn)
之前,但问题仍然存在


如何解决此问题?如何动态加载它并保持可引用性?

既然您已经用jQuery标记了问题,您可以使用它来解决问题。
$.getScript()
将在请求时获取远程脚本文件,它有一个回调,允许您在该脚本可用后执行代码。是否可以不使用jquery?我添加jquery只是因为lightcase是jquery,但我的所有项目中都没有jquery,我希望它尽可能兼容只是因为您动态创建了一个脚本元素并将其附加到文档中,并不意味着实际的脚本将立即可用-加载它的HTTP请求需要时间。您需要执行依赖它的代码,这取决于加载的脚本文件。(严格地说,不仅是加载,还需要对代码进行解析,然后才能调用其中包含的任何函数。)