在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);
...
}
...
}
答案 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;