javascript嵌套,如何使被嵌套的文件先执行? 参考网址:http://blog.sina.com.cn/u/47243df301000231 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考网站:http://www.knowsky.com/338902.html //文件a.jsvar a = "Hello";//文件b.jsalert("来自b.js");alert(a);//c.jsdocument.write("<scr" + "ipt type='text/javascript' src='a.js'><\/script>");document.write("<scr" + "ipt type='text/javascript' src='b.js'><\/script>");//主文件<script language="javascript" type="text/javascript" src="c.js"></script> 我个人理解是这样的a.html<script language="javascript" src="f1.js"/><script language="javascript" src="f2.js"/>浏览器会先访问a.html然后请求访问f1.js然后请求访问f2.js都载入完成后会激发page_load事件所以不能判断f1.js先载入完成还是f2.js先载入完成,也没有必要判断而是在f1.js/f2.js中只放入逻辑关系,比如定义好的js类/方法/全局变量然后将事件的处理放入page_load中 可以用setTimeout延时暂行,因为.....请运行以下代码。<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>never-online dynamic code test page</title></head><body id="http://www.never-online.net"><pre>readyState的含义 - uninitialized : 脚本对象刚被创建,脚本代码未载入; - loading : 脚本代码载入中; - loaded : 脚本代码完成读入,但尚未开始解释执行; - interactive : 解释执行过程中; - complete : 脚本已经执行完成。</pre><div id="viewer"></div><script type="text/javascript">window.onerror=function(msg,url,line){ document.getElementById("viewer").innerHTML+='<p style="color:red">错误:'+msg+'line:'+line+'</p>'; return true;}function bar(u) { var x=document.createElement("SCRIPT"); x.src=u; x.defer=true; document.getElementsByTagName("HEAD")[0].appendChild(x);}bar("a.js");(function getReadyState(){ var e=document.getElementById("viewer") var x=true; var a = document.getElementsByTagName("SCRIPT"); for (var i=0; i<a.length; i++) { if (a[i].readyState=='complete' && x!=false) x=true; else x=false e.innerHTML+=(a[i].src?a[i].src+':':'noname:')+a[i].readyState+"<br />"; } e.innerHTML+="<hr/>"; if (x) window.clearTimeout(window.timer); else window.timer=window.setTimeout('getReadyState()',1000);}());foo();</script><script type="text/javascript">//<![CDATA[foo();//]]></script></body></html>详细:http://blog.never-online.net/article.asp?id=73 急!用window.createPopup(); 弹出了个窗口,在窗口中想引用外部的.js文件,怎么写? 理解不了的问题 javascript读取远程.txt文件,出现乱码 URL中如何写入js?? 遍历表格每一行中input的值 javascript中如何得到一个字符串长度 如何用js 打开 文件对话框? js如何读取已经存在的cookies 在来一个菜鸟问题,50分啊,快来看看 怎样实现表格内的单元格的内容一行一行的往上移动? 求js的邮箱格式正则表达式 怎么样禁止工具栏,F5,标题栏,总之一切跟刷新有关的东西
var a = "Hello";//文件b.js
alert("来自b.js");
alert(a);//c.js
document.write("<scr" + "ipt type='text/javascript' src='a.js'><\/script>");
document.write("<scr" + "ipt type='text/javascript' src='b.js'><\/script>");//主文件
<script language="javascript" type="text/javascript" src="c.js"></script>
a.html
<script language="javascript" src="f1.js"/>
<script language="javascript" src="f2.js"/>浏览器会先访问a.html
然后请求访问f1.js
然后请求访问f2.js
都载入完成后会激发page_load事件所以不能判断f1.js先载入完成还是f2.js先载入完成,也没有必要判断
而是在f1.js/f2.js中只放入逻辑关系,比如定义好的js类/方法/全局变量
然后将事件的处理放入page_load中
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>never-online dynamic code test page</title>
</head>
<body id="http://www.never-online.net">
<pre>readyState的含义
- uninitialized : 脚本对象刚被创建,脚本代码未载入;
- loading : 脚本代码载入中;
- loaded : 脚本代码完成读入,但尚未开始解释执行;
- interactive : 解释执行过程中;
- complete : 脚本已经执行完成。</pre>
<div id="viewer"></div>
<script type="text/javascript">window.onerror=function(msg,url,line){
document.getElementById("viewer").innerHTML+='<p style="color:red">错误:'+msg+'line:'+line+'</p>';
return true;
}function bar(u) {
var x=document.createElement("SCRIPT");
x.src=u;
x.defer=true;
document.getElementsByTagName("HEAD")[0].appendChild(x);
}
bar("a.js");(function getReadyState(){
var e=document.getElementById("viewer")
var x=true;
var a = document.getElementsByTagName("SCRIPT");
for (var i=0; i<a.length; i++) {
if (a[i].readyState=='complete' && x!=false) x=true; else x=false
e.innerHTML+=(a[i].src?a[i].src+':':'noname:')+a[i].readyState+"<br />";
}
e.innerHTML+="<hr/>";
if (x) window.clearTimeout(window.timer); else
window.timer=window.setTimeout('getReadyState()',1000);
}());foo();</script>
<script type="text/javascript">
//<![CDATA[
foo();
//]]>
</script>
</body>
</html>详细:
http://blog.never-online.net/article.asp?id=73