<body onload="Ini()">
<form id="form1" runat="server" >
<div>
<SCRIPT LANGUAGE="JavaScript"> var a=new Object();
function Ini(){
a.y = 20;
}
function b(){
document.writeln(a.y);
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript"> b();</SCRIPT>
这样就可以了。不过还有个问题,你这样写的话,b会在Ini之前调用,打印出来的是undefiend
<body onload="Ini()">
<form id="form1" runat="server" >
<div>
<SCRIPT LANGUAGE="JavaScript"> var a;
function Ini(){
a=new Object();
a.y = 20;
}
function b(){
document.writeln(a.y);
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript"> b();</SCRIPT>这样也不行!
如果你在Ini()里才能定义a,那么b()就必须在Ini()之后执行!<body onload="Ini();b();">
<form id="form1" runat="server" >
<div>
<SCRIPT LANGUAGE="JavaScript"> var a;
function Ini(){
a=new Object();
a.y = 20;
}
function b(){
document.writeln(a.y);
}
</body>
</SCRIPT>
这样就可以了。
关键的问题是:function b 是由asp.net server side来调用的,两个办法:clientScript.RegisterScirtpBlock(); 或者是ClientScript.RegisterStartupScript(); 这两个方法生成的代码要不是就在<form>之后,要不就是 </form>之前,我没有办法把它放到和init所在的一个<script> block里面去!
document.writeln(a.y);
}
function Ini(){
a=new Object();
a.y = 20;
b();
}
不知道这样改没改变原来的执行顺序