在Firefox中,图像没有显示。但在IE中,它可行

时间:2013-08-26 10:17:18

标签: javascript

fileuplad progress

在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);  

            ...             


        }           

        ...
    }

1 个答案:

答案 0 :(得分: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;