如何在一个js中引用多个js文件

JavaScript021

如何在一个js中引用多个js文件,第1张

可以创建一个函数叫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加载完成了

写两个<script>标签调用两次就行了,下面是示例:

<script type="text/javascript" language="javascript" src="文件路径/xx.js"></script>

<script type="text/javascript" language="javascript" src="文件路径/xxx.js"></script>

PS:同理,需要调用多个js文件,就写多个<script>标签调用即可,调用的js文件不能是相同路径下的同个文件。

会发生冲突 的情况 是引用两个不同JS库

如果发生了

则以下的几个方法

在页面中同时存在jquery

prototype

,当用到

$

的时候,难免产生冲突,所以一定要区分开来:

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">

j= $

</script>

<script type="text/javascript" src="prototype.js" ></script>

这样做了以后,在用到jquery

的地方用

j

来替代

$

符号,而

prototype

$

函数照常使用,当然其实也不用定义

“ j= $”

,在用到

jquery

的地方直接用

jQuery

来替代

$

符号也一样的。

还有一个冲突网上找到的:Array.prototype.push

方法冲突。转载下:

这个冲突很严重,直接导致jQuery

的级联筛选无效。比如正常情况下,你可以使 用

$("span",$("#main"))

来获取

ID

main

的元素下面的

span

元素。但如果页面中同时使用了

prototype

框架相关,那抱歉 的很,你永远获取不到了。原因你可以调试跟踪自己查看

jQuery

的源代码。

解决方法:

<script type="text/javascript">

var fnArrayPush = Array.prototype.push

$().ready(function(){

Array.prototype.push = fnArrayPush

init()

})

</script>