JS/JavaScript前台异步加载并调用回调函数

来源:互联网 发布:产品手册设计软件 编辑:程序博客网 时间:2024/05/22 16:53

代码简单直接贴代码


/** * 异步加载依赖的javascript文件 * src:script的路径 * callback:当外部的javascript文件被load的时候,执行的回调 */var loadAsyncScript = function (src, callback) {var srcArray = src.split("?")[0].split("/");var scr_src = srcArray[srcArray.length - 1];// 判断要 添加的脚本是否存在如果存在则不继续添加了var scripts = document.getElementsByTagName("script");if(!!scripts && 0 != scripts.length){for(var i = 0; i < scripts.length; i ++){if(-1 != scripts[i].src.indexOf(scr_src)){callback();return true;}}}// 不存在需要的则添加var head = document.getElementsByTagName("head")[0];var script = document.createElement("script");script.setAttribute("type", "text/javascript");script.setAttribute("src", src);script.setAttribute("async", true);script.setAttribute("defer", true);head.appendChild(script);//fuck ie! duck typeif (document.all) {script.onreadystatechange = function() {var state = this.readyState;if (state === 'loaded' || state === 'complete') {callback();}}} else {//firefox, chromescript.onload = function() {callback();}}}


0 0
原创粉丝点击