我加了
  Img.src = TargetSrc;
        Img.border=0;     
        alert("2"); 
发现一真alert(2)
也就是说XMLimg.Load事件一直执行着
这是怎么回事呢

解决方案 »

  1.   

    我再写成<img src="http://www.yy-sports.com/crocs/images/load.gif" onload="alert('')" />他还是一直执行alert
    难道onload不是执行一定,而是一直执行吗
      

  2.   

    if(Img.complete)     
            {
                alert("0");
                if(typeof(Width) != "undefined" && typeof(Height) != "undefined")
                {
                    //this.AutoSize(Img,Width,Height);
                }
                ImgObj.parentNode.insertBefore(Img, ImgObj);
                ImgObj.parentNode.removeChild(ImgObj);
            }
    感觉你这段是多余的,都有onload的函数,还要这个干什么?
      

  3.   

    和你初始的图片有关,你这个是gif的,换张jpg的就不会了,应该是每显示gif的一幀就执行一次onload函数.
    <img src="http://www.yy-sports.com/crocs/images/load.gif" onload="alert('')" />
      

  4.   

    因为IE的img onload一次后,其他的地方他就不会再执行onload了
    先不管这个问题
    现在
    如何让
    <img src="http://www.yy-sports.com/crocs/images/load.gif" onload="alert('')" />
    的onload执行一次
      

  5.   

    RE:和你初始的图片有关,你这个是gif的,换张jpg的就不会了,应该是每显示gif的一幀就执行一次onload函数. 
    ----------
    还真的是啊但我一定在用gif啊
    那怎么让onload只执行gif最后一帧呢谢谢
      

  6.   

    应该是gif循环播放一次,执行一次onload一定要用gif那就用个变量记下,第一次才调用onload函数
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head><title>
        无标题页
    </title>
        <script type="text/javascript">
    var LoadCount = 0;

        var XMLimg = {
        // 动态加载图片 ***************************************************************
        Load:function (ImgObj, TargetSrc, DefaultSrc, Width, Height)
        {
            var Img = new Image();     
            Img.src = TargetSrc;
            Img.border=0;      
            if(Img.complete)     
            {
                alert("0");
                if(typeof(Width) != "undefined" && typeof(Height) != "undefined")
                {
                    //this.AutoSize(Img,Width,Height);
                }
                ImgObj.parentNode.insertBefore(Img, ImgObj);
                ImgObj.parentNode.removeChild(ImgObj);
            }
            Img.onload = function()
            {
                alert("1");
                if(typeof(Width) != "undefined" && typeof(Height) != "undefined")
                {
                    //XMLimg.AutoSize(Img,Width,Height);
                }
                ImgObj.parentNode.insertBefore(this, ImgObj);
                ImgObj.parentNode.removeChild(ImgObj);
            }
            Img.onerror = function()
            {
                Img.src=DefaultSrc;
            }
        }    
    }    </script>
    </head>
    <body>
        <form name="form1" method="post" action="Default.aspx" id="form1">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGTbKKzppo8+8eZbgzBgwJoKaEk1Cw==" />
    </div>    <img src="http://www.yy-sports.com/crocs/images/load.gif" onload="if( ++LoadCount == 1) XMLimg.Load(this,'http://zi.csdn.net/560×95.gif','http://www.csdn.net/Images/logo_csdn.gif',200,100)" />    </form>
    </body>
    </html>
      

  7.   


    这个与你内部的那个程序有关
    var Img = new Image();     
            Img.src = TargetSrc;
            Img.border=0;    
    这里重加载了
      

  8.   

    不用了我用
    onload(this.onload=null,...)