10.添加script标签,判断onload是否完成
- 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;
10.添加script标签,判断onload是否完成的更多相关文章
- 添加script标签、添加事件
添加script标签 var _hmt = _hmt || []; (function () { var hm = document.createElement("scr ...
- 如何使用jQuery动态的在body里添加script标签?
var script = document.createElement('script'); script.type = 'text/jacascript'; script.src = 'url'; ...
- js 引入外部文件之 script 标签
在我的理解看来,html 就是一个单纯的管显示问题,js就是单纯的管动作问题,css就是单纯的管布局问题,这三个构成了一个网页 在HTML中,经常会用到引入js 文件. 引入js的方法很简单: 1. ...
- 移除script标签引起的兼容性问题
一.应用场景: 有时候我们需要动态创建script标签实现脚本的按需加载,我们会为script标签绑定onload或者onreadystatechange事件,用于检测动态脚本是否加载并执行完毕,在事 ...
- <script>标签里的defer和async属性 区别(待补充)
defer与async的区别(表格显示): table th:first-of-type { width: 150px; } table th:nth-of-type(2) { } 区别 defer ...
- 使用<script>标签在HTML网页中插入JavaScript代码
新朋友你在哪里(如何插入JS) 我们来看看如何写入JS代码?你只需一步操作,使用<script>标签在HTML网页中插入JavaScript代码.注意, <script>标签要 ...
- 发布时一键添加html中的css标签和script标签版本号来防止浏览器缓存
AppendFileVersion 是一个VSIX插件支持vs2015意以上版本 是我用来发布时一键添加html中的css标签和script标签版本号来防止浏览器缓存 分享给大家! download ...
- 如何将 JavaScript 代码添加到网页中,以及 <script> 标签的属性
Hello, world! 本教程的这一部分内容是关于 JavaScript 语言本身的. 但是,我们需要一个工作环境来运行我们的脚本,由于本教程是在线的,所以浏览器是一个不错的选择.我们会尽可能少地 ...
- 微信页面script标签添加crossorigin=“anonymous”导致页面加载失败
公司一个微信企业号项目,突然出现页面数据加载失败,页面报错信息如下 意思是前端向服务端发送跨域资源请求访问这个js文件,但是服务端并不同意,所以服务端拒绝访问这个地址. 后来发现将crossorigi ...
随机推荐
- thinkphp 路径 (纯转)
TP中有不少路径的便捷使用方法,比如模板中使用的__URL__,__ACTION__等,如果你对这些路径不是很明白,用起来说不定就会有这样或那样的问题,抑或出了错也不知道怎么改,现在我们看一下这些路径 ...
- effective-java学习笔记---使用标记接口定义类型40
标记接口(marker interface),不包含方法声明,只是指定(或“标记”)一个类实现了具有某些属性的接口. 例如,考虑 Serializable 接口.通过实现这个接口,一个类表明它的实例可 ...
- 洛谷5026 Lycanthropy 差分套差分
题目链接 https://www.luogu.com.cn/problem/P5026 题意 在一个长度为m的序列中,每次给一个下标x,和一个权值v,然后从x-v*3到x-v*2单调递增,从x-v*2 ...
- PyTorch专栏(六): 混合前端的seq2seq模型部署
欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/ 欢迎关注PyTorch官方中文教程站: http://pytorch.panchuang.net/ 专栏目录: 第一 ...
- ICML 2019论文录取Top100:谷歌霸榜
[导读]人工智能顶级会议ICML 2019发布了今年论文录取结果.提交的3424篇论文中,录取了774篇,录取率为22.6%,较去年有所降低.从录取论文数量来看,谷歌成为今年最大赢家,紧随其后的是MI ...
- Node.js安装过程
今天电脑的node用不了了,于是决定重新安装一下 一.安装Node.js 1.首先,可以直接去Node的官网寻找适合自己电脑系统的版本 官网地址:https://nodejs.org/en/downl ...
- 【NLP面试QA】基本策略
目录 防止过拟合的方法 什么是梯度消失和梯度爆炸?如何解决? 在深度学习中,网络层数增多会伴随哪些问题,怎么解决? 关于模型参数 模型参数初始化的方法 模型参数初始化为 0.过大.过小会怎样? 为什么 ...
- coding++:SpringBoot 处理前台字符串日期自动转换成后台date类型的三种办法
第(1)种: 使用@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)注解在实体字段上. 这种方式的优点是:可以灵活的定义接收的类型 缺点很明显:不能全局统 ...
- [noip模拟]种花<快速幂+结论>
描述: OI太可怕了,我决定回家种田.我在后院里开辟了一块圆形的花圃,准备种花.种花是一种艺术,通过一定技术手法,花材的排列组合会让花变得更加的赏心悦目,这就是花艺.当然你知道,我在种田之前是OIer ...
- ScrollViewer - 可用鼠标拖动滚动的列表框
ScrollViewer添加附加属性: using System; using System.Collections.Generic; using System.Windows; using Syst ...