可以创建一个函数叫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>