日期:2014-05-16  浏览次数:20441 次

百分求个载入.js文件的方法!(在线等,速度结)
我用这个方式载入js脚本

document.write( " <script   src=\ "http://aaa.com/aa.js\ "> < "+ "/script> ");
alert(k);

在aa.js中定义了   var   k=123;

但是出错!
是因为aa.js还没载入完成就执行了alert(k)吧

百分求个好用的函数,(不要setTimeout的....)


------解决方案--------------------
jacklinchen(陈) : document.write是js脚本,是在客户端执行的,只是它写出来的东西带src,要向服务器请求东西罢了,不是一回事儿啊.

zzxiaoma(小马) : 应该不应该可以自己试一下,这种情况不是加载完才向下执行的.
------解决方案--------------------
function loadJSFiles(path,file,func) {

var head = document.getElementsByTagName( "head ")[0];
var script = document.createElement( "script ");
script.setAttribute( "type ", "text/javascript ");
script.setAttribute( "src ",path + file);
head.appendChild(script);

if(document.all){
script.onreadystatechange=function(){
if(/(complete|loaded)/.test(script.readyState)){
func();
}
}
}else{
script.onload=function(){
func();
}
}
}
------解决方案--------------------
这个吧

//引用js/css文件;
function include(path,type,title){
var s,i,t;
if(arguments.length < 1){
return ;
}
if(arguments.length == 1){
type = "js ";
}
switch(type.toLowerCase()){
case "css ":
t = document.getElementsByTagName( "link ");
for(i=0;i <t.length;i++){
if(t[i].href && t[i].href.indexOf(path)!=-1){
return;
}
}
s=document.createElement( "link ");
s.rel= "alternate stylesheet ";
s.type= "text/css ";
s.href=path;
s.title=title;
s.disabled=false;
break;
case "js ":
case "javascript ":
default:
t = document.getElementsByTagName( "script ");
for(i=0;i <t.length;i++){
if(t[i].src && t[i].src.indexOf(path)!=-1){
return;
}
}
s=document.createElement( "script ");
s.type= "text/javascript ";
s.src=path;
break;
}
var h=document.getElementsByTagName( "head ")[0];
h.appendChild(s);
}