I was having a problem with the IFRAME getting removed after a postback using IE7 (ASP.net/IIS backend).
I don't know the details but I know that the object referencing the IFRAME becomes null after the postback so the failure occurs when the positionshim and hideshim functions try to change properties of the object.
I simply added checks to see if the object was null and avoided those functions. I imagine this may cause IE6 problems but using this knowledge, I'm sure someone can come up with a way to make this backward-compatible. I personally don't have the time right now 
Code:
dropit:function(obj, e, dropmenuID){
if (this.dropmenuobj!=null) //hide previous menu
this.dropmenuobj.style.visibility="hidden" //hide menu
this.clearhidemenu()
if (this.ie||this.firefox){
obj.onmouseout=function(){cssdropdown.delayhidemenu()}
obj.onclick=function(){return !cssdropdown.disablemenuclick} //disable main menu item link onclick?
this.dropmenuobj=document.getElementById(dropmenuID)
this.dropmenuobj.onmouseover=function(){cssdropdown.clearhidemenu()}
this.dropmenuobj.onmouseout=function(e){cssdropdown.dynamichide(e)}
this.dropmenuobj.onclick=function(){cssdropdown.delayhidemenu()}
this.showhide(this.dropmenuobj.style, e)
this.dropmenuobj.x=this.getposOffset(obj, "left")
this.dropmenuobj.y=this.getposOffset(obj, "top")
this.dropmenuobj.style.left=this.dropmenuobj.x-this.clearbrowseredge(obj, "rightedge")+"px"
this.dropmenuobj.style.top=this.dropmenuobj.y-this.clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+1+"px"
if( null != this.shimobject ) {
this.positionshim() //call iframe shim function
}
}
},
hideshim:function(){
if (this.enableiframeshim && typeof this.shimobject!="undefined" && null != this.shimobject)
this.shimobject.style.display='none'
},
Thanks,
Adam
Bookmarks