通过window.onload 页面启动加载多个js函数,这样也执行第一个,还报出些第二个的测试参数,后停止运作,不知道什么原因?还望指点,谢谢!!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>显示票数条形图</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script src="LoadingJS/Loading.js" type="text/javascript"></script>
<script language="JavaScript"> 
    function invoke1() 
    {   
   var var1=0.5;// document.getElementById("var1").value;
   alert("var1="+var1);
   var loading_div1=document.getElementById("loading_div1");
   alert("loading_div1="+loading_div1);      // return Math.floor(Math.random()*num)+1;
       Loading('', 'LoadingJS/Loading.jpg', 20, 100,loading_div1,var1)
    } function invoke2() 
    {   
   var var2= 0.8;//document.getElementById("var2").value;
   alert("var2="+var2);
   var loading_div2=document.getElementById("loading_div2");
    alert("loading_div2="+loading_div2);
   Loading('', 'LoadingJS/Loading.jpg', 20, 200,loading_div2,var2);
    }
function invoke3() 
    {   
   var var3= 0.9;//document.getElementById("var3").value;
   alert("var3="+var3);
   var loading_div3=document.getElementById("loading_div3");
   alert("loading_div3="+loading_div3);
   Loading('', 'LoadingJS/Loading.jpg', 20, 300,loading_div3,var3);
    }
function invoke4() 
    {   
   var var4=0.4;// document.getElementById("var4").value;
   alert("var4="+var4);
   var loading_div4=document.getElementById("loading_div4");
       alert("loading_div4="+loading_div4);
   Loading('', 'LoadingJS/Loading.jpg', 20, 400,loading_div4,var4);
    }
window.onload = function()
{
     invoke1();
 invoke2();
 invoke3();
     invoke4();
}

</script></head><body>
    <div><ww:iterator value="allVoteList">
<input type="hidden" name="var<ww:property value='id'/>" value="<ww:property value='counter'/>">
</ww:iterator></div>
<!--<input type="button" name="Button" value="Button" onclick="invoke()">
 <ww:iterator value="allVoteList">
   
   <div id="loading_div<ww:property value='id'/>" ></div>
</ww:iterator>
        -->
<div>
<div id="loading_div1" ></div>
</div>
<div>
<div id="loading_div2" ></div>
</div>
<div id="loading_div3" ></div>
<div id="loading_div4" ></div>
</body>
</html>

解决方案 »

  1.   

    小弟想通过页面加载时自动先后执行,window.onload 里面的函数,一个js的方法控制显示一个百分比条形图的动态显示,也就是要求action传过数据来一个js执行完后(生成的代码在html文件中动态百分比显示)再执行后面的js方法,然后再显示,依次类推。。
    Loading.js的代码如下:
    //频率
    var frequency = 1;
    //步长   
    var step = 1;
    //背景颜色
    var loadingBgcolor = "blue";
    //宽度
    var loadingWidth = 500;
    //要显示到的div
    var loading_Div;
    //终止条件
    var timeID;
    //百分比数
    var varx;
    /*
    *参数说明:
    *content:显示内容,可以为空;
    *imageURL:将引用JS文件的路径设置即可;
    *left:进度条显示位置left
    *top:进度条显示位置top      Loading('', 'LoadingJS/', 20, 100,loading_div1,var1)
    */
    function Loading(content, imageURL, left, top,loading_div,varX) 

     //imageURL = imageURL + "Loading.jpg";
     alert("imageURL="+imageURL);
      alert("varX="+varX);
      getVar(varX);
      alert("!!!!!!!!!!!!!!!!!!!!!!!varx="+varx);
     LoadTable(content, imageURL, left, top,loading_div);
     showimage.style.display="";
     timeID=window.setInterval("RefAct();", frequency);
     alert("跳出RefAct函数");
     alert("timeID="+timeID);
    }  function getVar(varX)
    {
      varx=varX;}function RefAct()
    {  
     imgAct.width += step;
     if(imgAct.width == loadingWidth*varx)
     {
      imgAct.width =imgAct.width;
      clearInterval(timeID);
     }
     
    }function LoadTable(content, imageURL, left, top,loading_div)
    {
     getLoading_div(loading_div);
     alert("进入了函数LoadTable,loading_div="+loading_div);
     var strLoading;
     strLoading = ""; 
     strLoading += "<div id=\"showimage\" style=\"DISPLAY:none;Z-INDEX:100;LEFT:" + left+ "px;POSITION:absolute;TOP:" + top+ "px;\" align=\"center\">";
      strLoading += "<TABLE id=\"Table1\" cellSpacing=\"0\" cellPadding=\"0\" width=\"" + loadingWidth + "\" border=\"1\" bgcolor=\"" + loadingBgcolor+ "\">";
       strLoading += "<tr>";
        strLoading += "<td align=\"center\">";
         strLoading += "<font size=\"4\" face=\"Courier New, Courier, mono\"><strong>" + content + "</strong></font>";
        strLoading += "</td>";
       strLoading += "</tr>";
       strLoading += "<TR>";    strLoading += "<TD class=\"Loading\" height=\"8\">";
         strLoading += "<IMG id=\"imgAct\" height=\"8\" alt=\"\" src=\"" + imageURL + "\" width=\"0\">";
        strLoading += "</TD>";
       strLoading += "</TR>";
      strLoading += "</TABLE>";
     strLoading += "</div>";
     loading_Div.innerHTML = strLoading;

    function getLoading_div(loading_div)
    {
      loading_Div=loading_div;}
      

  2.   

    谢谢,setInterval是在一个方法里面,不同的js方法调用,之间应该不会相互影响啊。。
      

  3.   

    在一个方法里面是不可以同时调用的,我以前做过四项滚动的函数,就是 无法同时两个引用。因为他们的 timeID=值是相同的,方法是给他在传一个变量进来,把timeID 变量名修改了。
      

  4.   

    搞笑,他现在的timeID本来就是全局变量,怎么会他们的 timeID=值是相同的?
      

  5.   

    timeID=window.setInterval("RefAct();", frequency); function RefAct() 
    {  
    imgAct.width += step; 
    if(imgAct.width == loadingWidth*varx) 

      imgAct.width =imgAct.width; 
      clearInterval(timeID); 
    } } 应该是这里的错误,你的第一个
    invoke1(); 
    进来后setInterval执行;
    invoke2(); 进来已修改timeID,造成timeID的多次赋值,修改
    你最好把alert(timeID)看看
      

  6.   

    谢谢,就这的问题,问题已经解决,谢谢各位了,代码如下:
    Loading.js
    //频率
    var frequency = 1;
    //步长   
    var step = 1;
    //背景颜色
    var loadingBgcolor = "blue";
    //宽度
    var loadingWidth = 500;
    //要显示到的div
    var loading_Div;
    //终止条件
    var timeID = new Array();
    //百分比数
    var varx = new Array();
    var v=0;
    var num = 0 ; 
    /*
    *参数说明:
    *content:显示内容,可以为空;
    *imageURL:将引用JS文件的路径设置即可;
    *left:进度条显示位置left
    *top:进度条显示位置top      Loading('', 'LoadingJS/', 20, 100,loading_div1,var1)
    */
    function Loading(content, imageURL, left, top,loading_div,varX) 

     //imageURL = imageURL + "Loading.jpg";
     LoadTable(content, imageURL, left, top,loading_div);
     document.getElementById("showimage"+num).style.display="";
    alert(num+"ppppppp") ;
     timeID[num]=window.setInterval("RefAct();", frequency);
    getVar(varX) ;
    num++ ;
    }  function getVar(varX)
    {

      varx[num]=varX;
    alert("varx=="+num+"]]]]"+varx[num]);
    }function RefAct()
    {  
    var imgAct = document.getElementsByName("imgAct") ;
    for(var i=0;i<imgAct.length;i++){

     
      if(imgAct[i].width == loadingWidth*varx[i])
      {
       clearInterval(timeID[i]);
      }else{
    imgAct[i].width += step;
    } } 
    }function LoadTable(content, imageURL, left, top,loading_div)
    {
     getLoading_div(loading_div);
     var strLoading;
     strLoading = ""; 
     strLoading += "<div id=\"showimage"+num+"\" style=\"DISPLAY:none;Z-INDEX:100;LEFT:" + left+ "px;POSITION:absolute;TOP:" + top+ "px;\" align=\"center\">";
      strLoading += "<TABLE id=\"Table1"+num+"\" cellSpacing=\"0\" cellPadding=\"0\" width=\"" + loadingWidth + "\" border=\"1\" bgcolor=\"" + loadingBgcolor+ "\">";
       strLoading += "<tr>";
        strLoading += "<td align=\"center\">";
         strLoading += "<font size=\"4\" face=\"Courier New, Courier, mono\"><strong>" + content + "</strong></font>";
        strLoading += "</td>";
       strLoading += "</tr>";
       strLoading += "<TR>";    strLoading += "<TD class=\"Loading\" height=\"8\">";
         strLoading += "<IMG name=\"imgAct\" height=\"8\" alt=\"\" src=\"" + imageURL + "\" width=\"0\">";
        strLoading += "</TD>";
       strLoading += "</TR>";
      strLoading += "</TABLE>";
     strLoading += "</div>";
     loading_Div.innerHTML = strLoading;} 
    function getLoading_div(loading_div)
    {
      loading_Div=loading_div;}html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>显示票数条形图</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script src="LoadingJS/Loading.js" type="text/javascript"></script>
    <script language="JavaScript"> 
        function invoke1() 
        {   
       var var1=0.5;// document.getElementById("var1").value;
       alert("var1="+var1);
       var loading_div1=document.getElementById("loading_div1");
       alert("loading_div1="+loading_div1);      // return Math.floor(Math.random()*num)+1;
           Loading('', 'LoadingJS/Loading.jpg', 20, 100,loading_div1,var1)
       return true ;
        } function invoke2() 
        {   
       var var2= 0.8;//document.getElementById("var2").value;
       alert("var2="+var2);
       var loading_div2=document.getElementById("loading_div2");
        alert("loading_div2="+loading_div2);
       Loading('', 'LoadingJS/Loading.jpg', 20, 200,loading_div2,var2);
       return true;
        }
    function invoke3() 
        {   
       var var3= 0.9;//document.getElementById("var3").value;
       alert("var3="+var3);
       var loading_div3=document.getElementById("loading_div3");
       alert("loading_div3="+loading_div3);
       Loading('', 'LoadingJS/Loading.jpg', 20, 300,loading_div3,var3);
           return true;
        }
    function invoke4() 
        {   
       var var4= 0.4;
       alert("var4="+var4);
       var loading_div4=document.getElementById("loading_div4");
       alert("loading_div4="+loading_div4);
       Loading('', 'LoadingJS/Loading.jpg', 20, 400,loading_div4,var4);
           return true;
        }function aaa() 

    var bool1 = invoke1(); 
    if(bool1)
    var bool2=invoke2(); 
    if(bool2)
        var bool3=invoke3(); 
    if(bool3)
    invoke4(); 
    }
    </script></head><body onload="aaa();">
        <div><ww:iterator value="allVoteList">
    <input type="hidden" name="var<ww:property value='id'/>" value="<ww:property value='counter'/>">
    </ww:iterator></div>
    <!--<input type="button" name="Button" value="Button" onclick="invoke()">
     <ww:iterator value="allVoteList">
       
       <div id="loading_div<ww:property value='id'/>" ></div>
    </ww:iterator>
            -->
    <div>
    <div id="loading_div1" ></div>
    </div>
    <div>
    <div id="loading_div2" ></div>
    </div>
    <div id="loading_div3" ></div>
    <div id="loading_div4" ></div>
    </body>
    </html>