如何在js文件中动态加载另一个js文件?

JavaScript027

如何在js文件中动态加载另一个js文件?,第1张

1、直接document.write\x0d\x0a\x0d\x0adocument.write("")\x0d\x0a\x0d\x0a\x0d\x0a2、动态改变已有script的src属性\x0d\x0a

可以创建一个函数叫require 该函数支持两个参数

第一个参数 src  需要引入的script的路径 (这个参数可以是路径也可以是一个数组 多个js文件)

第二个回掉函数 在引入的script标签加载完成了调用

因为楼主是引用js文件所以必须要在引入的js加载完成了才能运行后面的js

所以下面给出一份演示

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title>e演示</title>

    <script type="text/javascript">

    function require(src,fun){

     function centerFun(O){

     var num=0

     for(var i=0i<O.lengthi++){

     (function(j){

if(O[j].complate){

     num++

     if(num==O.length){

     if(fun){

     fun()

     }

     }

     }else{

     O[j].onload=function(){

     num++

     if(num==O.length){

     if(fun){

     fun()

     }

     }

     }

     }

     })(i)

     }

     }

     if(typeof src=="object"){

     var d=new Array

     for(var i=0i<src.lengthi++){

     var e=document.createElement("script")

     document.body.appendChild(e)

     e.setAttribute("src",src[i])

     d.push(e)

     }

     centerFun(d)

     return 0

     }

     if(typeof src=="string"){

     var script=document.createElement("script")

     script.setAttribute("src",src)

     document.body.appendChild(script)

     if(script.complate){

     if(fun){

     fun()

     }

     }else{

     if(fun){

     script.onload=function(){

     fun()

     script.onload=null

     }

     }

    

     }

     }

    }

    </script>

</head>

<body>

<script type="text/javascript">

require(["http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"],function(){

console.log($)

})

</script>

</body>

</html>

该演示定义了一个函数require

可以看到代码中并没有script标签 而是通过require引入的在加载完成过后我显示了一下$说明函数已经将script加载完成了