1

文件上传进度

在 IE 中,我的代码在窗口的右侧和顶部显示 3 个图像(最小化、还原、关闭)。但在 Firefox 和 Chrome 中,它失败了。

如何纠正?

谢谢。

    function Panel(_caption,_width,_height,_confirmFunction) {
        this.icon=new Array();  
        this.icon["minimize"]=Env.envPath+'/UI/images/minimize.gif';

                    ...

        this.init=function() {
            this.mainDiv=document.createElement("div");
            this.mainDiv.style.cssText="padding:2px 2px 2px 2px;position:absolute;width:"+_width+"px;left:50%;margin-left:-"+(_width/2)+"px;top:50%;margin-top:-"+(_height/2+50)+"px;border-right:1px solid gray;border-top: 1px solid white;border-left:1px solid white;border-bottom:1px solid gray;background-color:#F2F1ED";
            document.body.appendChild(this.mainDiv);
            this.mainDiv.handler=this;

            this.toolDiv=document.createElement("div");
            this.toolDiv.style.cssText="background-color:#47649A;height:20px;float:right;margin-left:-3px";
            this.mainDiv.appendChild(this.toolDiv);
            var _img=document.createElement("img");
            _img.src=this.icon["minimize"];
            _img.style.cssText="margin-top:2px;cursor:pointer";
            _img.title="Minimize";
            _img.handler=this;
            _img.onclick=function(event) {
                this.handler.minimize();
            }
            this.toolDiv.appendChild(_img);  

            ...             


        }           

        ...
    }
4

1 回答 1

1

您在哪里/如何处理图像的 onload 事件?
您应该在使用它们之前预先加载所有图片。

如果有帮助,我会以简单的方式处理预加载:

var toLoadCount = 1; // at least we have to load window.

// do the same for each image you want to load 
toLoadCount++;
var myImage=newImage();
myImage.onload = oneLoaded ;
myImage.src = ... some src...
// 

function oneLoaded   { 
   toLoadCount--; 
   if (!toLoadCount) allLoaded() 
 }

function allLoaded() {
   // here is the function that really starts your page
 }

window.onload = oneLoaded;
于 2013-08-26T11:29:02.733 回答