2023年6月20日发(作者:)

js插件动态加载js、css解决⽅案  最近因为⼯作需要做了⼀个js⾃动导⼊的插件,⼀开始很天真的以为动态创建个script添加到head中就ok了,试了之后才发现了问题,就是如果同时引⼊了多个js⽂件,⽽且后⼀个⽂件中⽤到了前⼀个⽂件中的变量,那就会报错,靠~~悲催了,就是说js如果动态加载(⾮浏览器加载因为浏览器加载时同步加载的会等待前⼀个js加载完成后才进⾏下⼀个js加载,这样就不会出现问题)那加载的⽂件是异步进⾏的,难怪啊!然后在⽹上找了些资料说⽤ajax同步加载,然后我试了真可以,下⾯就是我的代码分享出来给⼤家,但是注意这样加载出来的js有⼀个致命的弱点,就是没法再浏览器上调试- - 以后再寻找解决⽅案吧,先贴代码:js主⽂件:** * Created by carlos on 2015/5/19. * QImport 导⼊帮助函数,可以很⽅便的导⼊指定的js、css⽂件。但是需要注意的是,这样导⼊的js将⽆法调试,暂时没有找到解决⽅案--! * 使⽤⽅法先把此⽂件引⼊,必须放在head中的最前⾯导⼊, * * id必须是QImport,否则⽆效 * 然后加⼊ * * customscripts参数为:外加的引⼊⽂件配置,可以不填。但填写必须遵守SCRIPTS的写法。 * 如果不想⼿动初始化引⼊函数,可以这样写: * * 这⾥的 data-auto为true时候才会⾃动初始化,否则需要⼿动初始化。 * 使⽤上⾃动初始化,不⽤担⼼引⼊顺序问题,后⾯的其他js、css⽂件按正常引⽤就可以了。 * 注意:importComjs⽂件必须第⼀个引⼊,否则将出现引⽤找不到的问题。 * 新增属性: * data-config:⾃定义配置⽂件名,默认为“” * data-personalconfigname:⾃定义个性化配置名称,在配置⽂件中的“personalscripts”中配置 * 注意:配置加载顺序是:importscripts最⾼、personalscripts其次、customscripts最低。如果引⼊的次序不对会引起空指针报错哦^^! *//** * 同步加载js脚本 * @param id 需要设置的 * id必须是QImport,否则⽆效 * 然后加⼊ * * customscripts参数为:外加的引⼊⽂件配置,可以不填。但填写必须遵守SCRIPTS的写法。 * 如果不想⼿动初始化引⼊函数,可以这样写: * * 这⾥的 data-auto为true时候才会⾃动初始化,否则需要⼿动初始化。 * 使⽤上⾃动初始化,不⽤担⼼引⼊顺序问题,后⾯的其他js、css⽂件按正常引⽤就可以了。 * 注意:importComjs⽂件必须第⼀个引⼊,否则将出现引⽤找不到的问题。 * 新增属性: * data-config:⾃定义配置⽂件名,默认为“” * data-personalconfigname:⾃定义个性化配置名称,在配置⽂件中的“personalscripts”中配置 * 注意:配置加载顺序是:importscripts最⾼、personalscripts其次、customscripts最低。如果引⼊的次序不对会引起空指针报错哦^^! *//** * 同步加载js脚本 * @param id 需要设置的