10.添加script标签,判断onload是否完成
2024-08-30 06:11:38
- class Tools
- {
- static loadScript(url, callback)
- {
- let old_script = document.getElementById(url);
- if (old_script)
- {
- if (old_script.ready == true)
- {
- // console.log("INFO:already load:" + url);
- callback();
- return;
- }
- else
- {
- document.body.removeChild(old_script);
- // console.log("INFO:remove an old script that not ready:" + url);
- }
- }
- let script = document.createElement('script');
- script.id = url;
- script.src = url;
- script.onload = script.onreadystatechange = function() {
- if (script.ready) {
- return false;
- }
- if (!script.readyState //这是FF的判断语句,因为ff下没有readyState这个值,IE的readyState肯定有值
- || script.readyState == "loaded" || script.readyState == 'complete' // 这是IE的判断语句
- ) {
- // console.log("INFO:load:" + url);
- script.ready = true;
- callback();
- }
- };
- document.body.appendChild(script);
- }
- //synchronization
- //同步加载多个脚本
- static syncLoadScripts(scripts, callback)
- {
- var ok = 0;
- var loadScript = function(url) {
- Tools.loadScript(url, function(){
- ok++;
- // console.log("init:" + url)
- if (ok == scripts.length) {
- callback();
- }
- else {
- loadScript(scripts[ok])
- }
- })
- }
- loadScript(scripts[0]);
- }
- //asynchronization
- //异步加载多个脚本
- static asyncLoadScripts(scripts, callback)
- {
- var ok = 0;
- for (var i=0; i < scripts.length; i++) {
- Tools.loadScript(scripts[i], function() {
- console.log(scripts[ok])
- ok++;
- if (ok==scripts.length)
- {
- callback();
- }
- })
- }
- }
- }
- export default Tools;
最新文章
- 【原生态】Http请求数据 与 发送数据
- Python 中的虚拟环境
- 史航第12次作业&;总结
- 利用HTML5云存储实现模拟对比投票效果
- LoaderManager使用详解(三)---实现Loaders
- 微信公众号与HTML 5混合模式揭秘1——如何部署JSSDK
- 64位Python安装PIL
- 数组中所有重复次数大于等于minTimes的数字
- iOS对textField进行字符长度限制的办法
- ReactJS.NET
- 201521123002《Java程序设计》第14周学习总结
- makefile(一)
- IDEA 创建和使用tomcat
- NOI2017 游记
- Can&#39;t locate find.pl in @INC (@INC contains: /etc/perl xxxx) at perlpath.pl line 7.
- boost json序列化
- CTreeCtrl和CListCtrl失去焦点时高亮选中项
- java web启动后执行初始化任务
- 『PyTorch』第十三弹_torch.nn.init参数初始化
- Python 使用 Redis 操作
热门文章
- Linux常用的命令收藏
- varchar int 查询 到底什么情况下走索引?
- fastai 官方教程之查看数据
- 使用PyTorch进行情侣幸福度测试指南
- Error response from daemon: rpc error: code = AlreadyExists desc = name conflicts with an existing object: service myweb already exists
- 好记性-烂笔头:JDK8流操作
- eureka和zookeeper注册中心的区别
- Mac word文档的消失问题以及解决方案
- 关于java动态代理模式
- 别人家的 InfluxDB 实战 + 源码剖析