Avatar billede ffn Nybegynder
19. august 2001 - 20:44 Der er 14 kommentarer og
1 løsning

.js menu ligger under iframe

Jeg har en side http://www.jopa.dk/test
hvori jeg gør brug af en menu med flg. kode (se længere nede) problemet er at den ligger sig om bag ved en celle hvori jeg køre iframe

Kan du løse det problem, så indløser du pointene
--
/**************
Copyright (c) 2001 Thomas Brattli (www.dhtmlcentral.com)

eXperience DHTML coolMenus - Get it at  www.dhtmlcentral.com
Version 3.02
This script can be used freely as long as all copyright messages are
intact.

(You can delete the comments below to save space)

This script takes over for the old Coolmenus2 and CoolFrameMenu

Visit www.dhtmlcentral.com/coolmenus/
for the latest version of the script.

Tutorial: http://www.dhtmlcentral.com/tutorial.asp

Support: http://www.dhtmlcentral.com/forums/forum.asp?FORUM_ID=2&CAT_ID=1&Forum_Title=CoolMenus

Known bugs:
Netscape 6: When using padding in the layers you can sometimes get
strange visual effects on the lowest menu item. Only way to fix is to not use padding.

Opera: This menu is very close to working on Opera, but as far as I could
figure out opera don\'t support innerHTML or document.createElement() which
makes the changing of the text inside the submenus immpossible. If anyone
know a solution to this please let me know.

Explorer 4 for mac: It will not work in this browser, nothing does.

Explorer 5 for mac: It works fine, but like Netscape 6 it\'s a little slow and you can get strange visual effects sometimes.

Script checked and working with:
PC:
Netscape 4.03 - Netscape 4.04 -Netscape 4.08 - Netscape 4.73 - Netscape 6 - Netscape 6.01
Internet Explorer 5.0 - Internet Explorer 5.5 -Internet Explorer 6.0
MAC:
Netscape 4 - Explorer 5

Btw: There is basically just one explanation to why this code is sort of \"scrambled\": I wanted this file be as small as possible..
If you want it to be smaller feel free to remove all comments (except for the copyright)
**************/

/*************
Pageobject
***************/
function makePageCoords(win,fr){
    if(!win) win=window
    this.x=0;this.x2=(bw.ns4 || bw.ns6)?win.innerWidth-1:win.document.body.offsetWidth;
    if(!fr&&bw.ie) this.x2-=20; else if(!fr&&bw.ns4) this.x2-=4; else if(bw.ns6) this.x2+=1
    this.y=0;this.y2=(bw.ns4 || bw.ns6)?win.innerHeight:win.document.body.offsetHeight;
    if(bw.ns4&&!win.rows) this.x2+=5; if(!fr&&bw.ie) this.y2-=4; else if(bw.ns4&&fr) this.y2+=4
    this.y2orig=this.y2; this.x50=this.x2/2; this.y50=this.y2/2; return this;
}
/*************
Debugging function
***************/
function debug(txt,ev){if(mDebugging==2) self.status=txt; else alert(txt); if(ev) eval(ev); return false}
/************
Scroll function
*************/
function cm_checkScrolled(obj){
    if(bw.ns4 || bw.ns6) obj.scrolledY=obj.win.pageYOffset
    else obj.scrolledY=obj.win.document.body.scrollTop
    if(obj.scrolledY!=obj.lastScrolled){
        if(!obj.useframes){
            for(i=0;i<obj.l[0].num;i++){var sobj=obj.l[0].o[i].oBorder; sobj.moveY(sobj.y+(obj.scrolledY-obj.lastScrolled))}
            if(obj.usebar) obj.oBar.moveY(obj.oBar.y+(obj.scrolledY-obj.lastScrolled))
        }
        obj.lastScrolled=obj.scrolledY; page.y=obj.scrolledY; page.y2=page.y2orig+obj.scrolledY
        if(!obj.useframes || bw.ie){ clearTimeout(obj.tim); obj.isover=0; obj.hideSubs(1,0)}
    }if((bw.ns4 || bw.ns6) && !obj.useframes) setTimeout(\"cm_checkScrolled(\"+obj.name+\")\",200)
}
/***********************
Checking if the values are % or not.
***************/
function cm_checkp(num,w,check,istop,ds){
    if(num){ var p=istop?toppage:page
        if(num.toString().indexOf(\"%\")!=-1){if(w || (check && this.rows)) num=(p.x2*parseFloat(num)/100)
        else num=(p.y2*parseFloat(num)/100)
        }else num=eval(num)
    }else num=0; return num
}
/************
Making DIV objects + DIV objects code
*************/
function cm_makeObj(obj,name,level,win,nest,o){
    if(o&&(bw.ns4||bw.ns6)) this.evnt=o
    else this.evnt=bw.dom?win.document.getElementById(obj):bw.ie4?win.document.all[obj]:bw.ns4?nest?win.document[nest].document[obj]:win.document[obj]:0;
    if(!this.evnt) return debug(\'There seems to be an error with this layer:\\nFrame: \'+win+\'\\nLayer: \'+nest + \".\" + obj)
    this.css=bw.dom||bw.ie4?this.evnt.style:bw.ns4?this.evnt:0;    this.ref=bw.dom || bw.ie4?win.document:bw.ns4?this.css.document:0;
    this.hideIt=cm_hideIt; this.showIt=cm_showIt; this.writeIt=cm_writeIt; this.setactive=cm_setactive; this.addEvents=cm_addEvents;
    this.moveIt=cm_moveIt; this.clipTo=cm_clipTo; if(name) this.parent=name; this.moveY=cm_moveY; this.l=level; this.clipOut=cm_clipOut;
    this.filterIt=cm_filterIt; this.obj = obj + \"Object\";     eval(this.obj + \"=this\"); this.tim=10; this.clipy=0; return this
}
function cm_writeIt(text){if(!this.img1){if(bw.ns4){this.ref.write(text);
this.ref.close()}else this.evnt.innerHTML=text}}; function cm_moveY(y){this.y=y; this.css.top=y}
function cm_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x;this.css.top=this.y}
function cm_showIt(){this.css.visibility=\"visible\"; this.vis=1}; function cm_hideIt(){this.css.visibility=\"hidden\"; this.vis=0}
function cm_clipOut(px,w,ystop,tim,name){
    if(!this.vis) return; if(this.clipy<ystop-px){this.clipy+=px; this.clipTo(0,w,this.clipy,0,1)
        this.tim=setTimeout(this.obj+\".clipOut(\"+px+\",\"+w+\",\"+ystop+\",\"+tim+\",\'\"+name+\"\')\",tim)
    }else{if(bw.ns6){this.hideIt();}; this.clipTo(0,w,ystop,0,1); if(bw.ns6){this.showIt()}}
}
function cm_filterIt(f){if(this.evnt.filters[0]) this.evnt.filters[0].Stop(); else this.css.filter=f; this.evnt.filters[0].Apply(); this.showIt(); this.evnt.filters[0].Play();}
function cm_setactive(on,name,frmmouse){
    if(!name) name=this.name; var tobj=this.parent.m[name]
    if(tobj.img){if(tobj.img2){if(on) this.ref.images[tobj.img].src=tobj.img2; else this.ref.images[tobj.img].src=tobj.img1}
    }else{
        if(on){var color=tobj.c2; var fcolor=tobj.c4; var re=tobj.c3}else{var color=tobj.c1; var fcolor=tobj.c3; var re=tobj.c4}
        if(color){if(bw.dom || bw.ie4) this.css.backgroundColor=color; else if(bw.ns4) if(color==\"transparent\") color=null; this.css.bgColor=color}
        if(fcolor && !bw.ns4){if(bw.ie4) this.evnt.style.color=fcolor; else if(this.evnt.childNodes[0]) this.evnt.style.color=fcolor
        }else if(fcolor&&frmmouse){t=this.parent.m[name].text; t=t.replace(re,fcolor); this.writeIt(t); if(on) this.addEvents(name,this.parent.name,tobj.lnk,this.parent.useclick)}
        if(tobj.l==0&&bw.ns6){this.parent.l[0].o[tobj.num].oBorder.hideIt(); this.parent.l[0].o[tobj.num].oBorder.showIt();} //Stupid fix for netscape 6....
    }
}
function cm_clipTo(t,r,b,l,w){if(bw.ns4){this.css.clip.top=t;this.css.clip.right=r; this.css.clip.bottom=b;this.css.clip.left=l
}else{this.css.clip=\"rect(\"+t+\",\"+r+\",\"+b+\",\"+l+\")\"; if(w){this.css.width=r; this.css.height=b}}; this.width=r; this.height=b}
function cm_addEvents(n,name,url,useclick){
    this.evnt.onmouseover=new Function(name+\".mover(\'\"+n+\"\')\");
    this.evnt.onmouseout=new Function(name+\".mmout(\'\"+n+\"\')\")
    if(!url && useclick) ev=new Function(name+\".mover(\'\"+n+\"\',1)\")
    else ev=new Function(name+\".go(\'\"+n+\"\')\")
    if(bw.ns4){this.ref.captureEvents(Event.MOUSEDOWN); this.ref.onmousedown=ev}
    else this.evnt.onclick=ev
}
/************
Making menu object
*************/
function cm_makeMenu(name,parent,text,link,target,width,height,img1,img2,bgcoloroff,bgcoloron,textcolor,hovercolor,onclick,onmouseover,onmouseout){
    this.m[name]=new Object(); var obj=this.m[name]; obj.name=name;    obj.subs=new Array(); obj.parent=parent; var tt
    obj.lnk=(link==0||link==\'\')?\"\":link; obj.target=target
    if(parent!=\"\" && parent){this.m[parent].subs[this.m[parent].subs.length]=name; l=this.m[parent].l+1} else l=0
    obj.l=l; prop1=l<this.level.length?this.level[l]:this.level[this.level.length-1]; prop2=this.level[0]
    if(this.l.length<=l){
        this.l[l]=new Object(); this.l[l].num=0; if(l==0) this.l[l].names=new Array()
        this.l[l].clip=prop1[\"clip\"]||prop2[\"clip\"]||0; this.l[l].clippx=prop1[\"clippx\"]||prop2[\"clippx\"]||0
        this.l[l].cliptim=prop1[\"cliptim\"]||prop2[\"cliptim\"]||0; this.l[l].filter=prop1[\"filter\"]||prop2[\"filter\"]||0
        this.l[l].border=prop1[\"border\"]||prop2[\"border\"]; this.l[l].maxnum=0
        this.l[l].bordercolor=prop1[\"bordercolor\"]||prop2[\"bordercolor\"];
        s=prop1[\"align\"]||prop2[\"align\"]; if(s==\"left\") s=1; else if(s==\"right\") s=0;
        else if(s==\"top\") s=3; else if(s==\"bottom\") s=2; this.l[l].align=s; this.aobj[l]=-1;
        this.l[l].height=prop1[\"height\"]||prop2[\"height\"]; this.l[l].width=prop1[\"width\"]||prop2[\"width\"];
        this.l[l].style=prop1[\"style\"]||prop2[\"style\"]; this.l[l].tc=textcolor||prop1.textcolor||prop2.textcolor;
        this.l[l].offsetX=String(prop1[\"offsetX\"])!=\"undefined\"?prop1[\"offsetX\"]:prop2[\"offsetX\"]
        this.l[l].offsetY=String(prop1[\"offsetY\"])!=\"undefined\"?prop1[\"offsetY\"]:prop2[\"offsetY\"]
    }if(l==0) this.l[l].names[this.l[l].names.length]=name
    if(parent!=\"\" && parent){obj.num=this.m[parent].subs.length-1}else obj.num=this.l[l].num
    this.l[l].num++; prop=l<this.level.length?this.level[l]:this.level[this.level.length-1]
    obj.width=this.checkp(width?width:prop1.width?prop1.width:prop2.width,1,0,1);
    obj.height=this.checkp(height?height:prop1.height?prop1.height:prop2.height,0,0,1);
    if(parent!=\"\" && parent){if(this.m[parent].subs.length>this.l[l].maxnum) this.l[l].maxnum=this.m[parent].subs.length
        if(this.m[parent].totheight==0) this.m[parent].totheight=this.l[l].border
        this.m[parent].totheight+=obj.height+ this.l[l].border
        if(this.m[parent].maxwidth<obj.width) this.m[parent].maxwidth=obj.width+this.l[l].border*2
    }else{this.l[l].maxnum=this.l[l].names.length; this.totwidth+=obj.width; this.totheight+=obj.height
        this.maxwidth=this.maxwidth>obj.width?this.maxwidth:obj.width; this.maxheight=this.maxheight>obj.height?this.maxwidth:obj.height
    }if(img1) text=\'<img src=\"\'+img1+\'\" border=\"0\" name=\"imgCMenu\'+name+\'\">\'
    else if(bw.ns4){text=\'<font size=\"\'+(prop1.NS4fontSize||prop2.NS4fontSize)+\'\" face=\"\'+(prop1.NS4font||prop2.NS4font)+\'\" color=\"\'+(textcolor||this.l[l].tc)+\'\">\'+text+\'</font>\'}
    if(bw.ns4&&this.useNS4links&&(l==0||!this.useframes) ||(l==0&&img1)){tt=img1&&l==0?this.useclick?this.name+\".mover(\'\"+name+\"\',1);\":this.name+\".go(\'\"+name+\"\');\":\"\";text=\'<a href=\"#\" onclick=\"\'+tt+\'return false\" class=\"clNS4\">\'+text+\'</a>\'}
    if(img1){obj.preimg1=new Image(); obj.preimg1.src=img1}; if(img2){obj.preimg2=new Image(); obj.preimg2.src=img2}
    if(img2) obj.img=\"imgCMenu\"+name; else obj.img=0; obj.img1=img1||\"\"; obj.img2=img2||\"\"; obj.text=text; obj.subx=-1;
    obj.c1=bgcoloroff||prop1.bgcoloroff||prop2.bgcoloroff; obj.c2=bgcoloron||prop1.bgcoloron||prop2.bgcoloron;
    obj.c3=textcolor||this.l[l].tc; obj.c4=hovercolor||prop1.hovercolor||prop2.hovercolor;  obj.suby=-1;
    obj.mclick=onclick||\"\"; obj.mover=onmouseover||\"\"; obj.mout=onmouseout||\"\";    obj.totheight=0; obj.maxwidth=0;
}
/************
Onmouseout
*************/
function cm_mout(name,cl){
    if(!name&&cl&&!this.isover){this.isclicked=0; this.hideSubs(1,0,0,0,1);  this.aobj[0]=-1; return}
    if(!name) return; var l=this.m[name].l;
    if((this.m[name].subs.length==0||!this.loaded)||(this.useclick&&!this.isclicked)){if((this.aobj[l+1]==-1||l>=this.l.length-1)&&this.aobj[l]!=-1){this.aobj[l].setactive(0,0,1); this.aobj[l]=-1;}}
    if(this.m[name].mout!=\"\") eval(this.m[name].mout)
    if(this.useclick){this.isover=0; return}; clearTimeout(this.tim);
    if(!(!bw.ie&&this.useframes&&l==0&&this.aobj1)){ this.isover=0; this.aobj1=0; this.tim=setTimeout(this.name+\".hideSubs(1,0,0,0,1)\",this.wait)}
}
/************
Onmouseover
*************/
function cm_mover(name,cl){
    clearTimeout(this.tim); this.isover=1; var l=this.m[name].l;
    if(this.aobj[l].name==name){
        if(this.aobj[l+1]!=-1 && l<this.l.length-1){
            this.aobj[l+1].setactive(0,0,1); this.aobj[l+1]=-1; this.hideSubs(l+2,1); return
        }else if((!this.useclick)||(this.useclick&&this.isclicked)) return
    }if(this.m[name].mover!=\"\") eval(this.m[name].mover)
    var num=this.m[name].num; var obj=this.l[l].o[num]
    if(this.aobj[l].name!=name){if(this.aobj[l]!=-1) this.aobj[l].setactive(0,0,1); this.aobj[l]=obj; this.aobj[l].name=name; obj.setactive(1,0,1)}
    if(l==1)this.aobj1=1; if(l==0 && cl && this.useclick) this.isclicked=1;
    if(!this.isclicked&&this.useclick) return; if(!this.loaded) return;
    this.showSubs(name,l,num,cl)
}
/************
Hiding subelements
*************/
function cm_hideSubs(l,system,cl,sys2,hc){
    if(this.isover && !system) return
    if(l==1 && this.aobj[0]!=-1&&!sys2){this.aobj[0].setactive(0,0,1);this.aobj[0]=-1}
    if(!this.loaded) return; if(cl==1) return
    for(i=l;i<this.l.length;i++){if(this.l[i].oBorder.vis==0) break; this.l[i].oBorder.hideIt(); this.aobj[i]=-1;}
    if(hc&&this.hcode){eval(this.hcode); this.hcode=\"\"}
}
/************
Get x/y coords. Only the first time :)
*************/
function cm_getCoords(name,l,num,topalign,align,ln,border,cn,lev1b){
    if(cn==5){ this.m[name].subx=0; this.m[name].suby=0; return }//Just in case infinitive loops
    if(l==1) var pobj=this.l[l-1].o[num].oBorder
    else var pobj=this.l[l-1].oBorder
    var x=pobj.x; var y=pobj.y;
    if(l!=1){y+=this.l[l-1].o[num].y}
    pborder=this.l[l-1].border;
    lx=x+pobj.width; rx=x-this.m[name].maxwidth- (this.l[l-1].offsetX*2)
    if(align==0){if(l==1){y+=border} if(l==1&&this.useframes) x=0; else x=lx
    }else if(align==1){x=rx; if(l==1){if(this.useframes) x=page.x2 - this.m[name].maxwidth; y+=border}}
    if((align==2||topalign==2)&&lev1b!=3){
        if(l!=1 && (align!=1&&align!=0)){if(topalign==1) x=rx; else x=lx}
        if(l==1) if(this.useframes) y=0; else y+=this.m[name].height+border+pborder;
    }if((align==3||topalign==3)&&lev1b!=2){
        if(l!=1&&align!=1&&align!=0){if(topalign==1) x=rx; else x=lx}
        if(this.useframes&&l==1) y=page.y2 - this.m[name].totheight - this.l[l-1].offsetY*2
        else y-=this.m[name].totheight - this.l[l].offsetY*2; if(l!=1||lev1b==3) y+=this.m[name].height
    }this.m[name].scrollY=this.lastScrolled; this.m[name].subx=x+this.l[l-1].offsetX;
    this.m[name].suby=y+this.l[l-1].offsetY; if(this.useframes&&l==1&&align!=3) this.m[name].suby+=this.lastScrolled
    if(this.pagecheck&&(l!=1||!this.useframes)) this.checkPage(name,l,num,topalign,align,ln,border,cn)
}
/************
Checking page coords
*************/
function cm_checkPage(name,l,num,topalign,align,ln,border,cn){
    cn++;
    if(this.m[name].subx+this.m[name].maxwidth>page.x2){
        if(align!=1){if(align==3&&topalign!=0) topalign=3; align=1; this.getCoords(name,l,num,topalign,align,ln,border,cn)}
    }else if(this.m[name].subx<page.x){
        if(align!=0){if(align==3) topalign=3; align=0; this.getCoords(name,l,num,topalign,align,ln,border,cn)}
    }else if((this.m[name].suby+this.m[name].totheight)>page.y2){
        if(l==1){topalign=3; this.getCoords(name,l,num,topalign,align,ln,border,cn,3)}
        else if(align!=3){ align=3; this.getCoords(name,l,num,topalign,align,ln,border,cn)}
    }else if(this.m[name].suby<page.y){
        if(l==1){topalign=2; this.getCoords(name,l,num,topalign,align,ln,border,cn,2)}
        else if(align!=2){align=2; this.getCoords(name,l,num,topalign,align,ln,border,cn)}
    }
}
/************
Showing subelements
*************/
function cm_showSubs(name,l,num,cl){
    l+=1; if(l>=this.l.length) return; ln=this.m[name].subs.length
    if(ln==0){this.hideSubs(l,1,0,1); return}
    else this.hideSubs(l+1,1); var border=this.l[l].border; this.aobj[l]=-1
    if(this.useframes&&(bw.ns4||bw.ns6)) cm_checkScrolled(this)
    if((this.m[name].subx==-1 || this.m[name].suby==-1) || this.m[name].scrollY!=this.lastScrolled || this.isresized){
        var topalign=this.l[0].align; var align=this.l[l-1].align;
        this.getCoords(name,l,num,topalign,align,ln,border,0)
    }var x=this.m[name].subx; var y=this.m[name].suby;
    var bobj=this.l[l].oBorder; bobj.hideIt();
    if(this.l[l-1].clip&&!(this.l[l-1].filter&&bw.filter)){
        clearTimeout(bobj.tim); bobj.clipy=0; bobj.clipTo(0,this.m[name].maxwidth,0,0);
    }else bobj.clipTo(0,this.m[name].maxwidth,this.m[name].totheight,0,1)
    bobj.moveIt(x,y); var yy=border
    for(i=0;i<this.l[l].maxnum;i++){
        var obj=this.l[l].o[i]
        if(i<ln){
            var n=this.m[name].subs[i]; obj.aname=n; if(!bw.ns4||!this.NS4hover) obj.writeIt(this.m[n].text)
            obj.addEvents(n,this.name,this.m[n].lnk,this.useclick); var w=this.m[n].width; var h=this.m[n].height
            if(obj.y!=yy) obj.moveY(yy); yy+=h+border; if(!obj.img) obj.setactive(0,n,1);
            if(obj.width!=w||obj.height!=h) obj.clipTo(0,w,h,0,1); obj.css.visibility=\"inherit\"
        }else obj.hideIt()
    }if(this.l[l-1].filter&&bw.filter) bobj.filterIt(this.l[l-1].filter)
    else if(this.l[l-1].clip){bobj.showIt(); bobj.clipOut(this.l[l-1].clippx,this.m[name].maxwidth,this.m[name].totheight,this.l[l-1].cliptim,name);}
    else bobj.showIt();
    if(!bw.ns4&&this.checkselect){ //CHECKING FOR SELECT BOXES
        for(i=0;i<this.sel.length;i++){
            selx=0; sely=0; var selp;
            if(this.sel[i].offsetParent){selp=this.sel[i]; while(selp.offsetParent){selp=selp.offsetParent; selx+=selp.offsetLeft; sely+=selp.offsetTop;}}
            selx+=this.sel[i].offsetLeft; sely+=this.sel[i].offsetTop
            selw=this.sel[i].offsetWidth; selh=this.sel[i].offsetHeight
            if(((selx+selw)>this.m[name].subx && selx<(this.m[name].subx+this.m[name].maxwidth))
            &&((sely+selh)>this.m[name].suby && sely<(this.m[name].suby+this.m[name].totheight))){
                if(this.sel[i].style.visibility!=\"hidden\"){this.sel[i].level=l; this.sel[i].style.visibility=\"hidden\"; this.hcode+=this.name+\".sel[\"+i+\"].style.visibility=\'visible\';\"}
            }else if(l<=this.sel[i].level) this.sel[i].style.visibility=\"visible\"
        }
    }else if(bw.ns4&&this.hideForm){eval(this.hideForm+\".visibility=\'hide\'\"); this.hcode=this.hideForm+\".visibility=\'show\'\"}
}
/************
Making all top elements
*************/
function cm_makeTop(rr){
    var m,rows,border,x,y,mpa
    m=this.menuplacement; rows=this.rows; this.pxbetween=this.checkp(this.pxbetween,0,1,1)
    border=this.l[0].border;y=this.checkp(this.fromtop,0,0,1)+border;x=this.checkp(this.fromleft,0,0,1)+border
    if(m==\"bottomcenter\"||m==\"bottom\"){
        if(m==\"bottomcenter\") x=toppage.x2/2-(this.totwidth+border*this.l[0].num+this.pxbetween*(this.l[0].num-1))/2
        y=toppage.y2-this.maxheight-border
    }else if(m==\"right\") x=toppage.x2-this.maxwidth-border*2
    else if(m==\"bottom\") y=toppage.y2-this.maxheight-border*2
    else if(m==\"center\"){if(rows==0) x=toppage.x2/2 -  (this.maxwidth+border*2)/2; else x=toppage.x2/2 - (this.totwidth + border*this.l[0].num +this.pxbetween*(this.l[0].num-1))/2}
    else if(m.toString().indexOf(\",\")>-1) mpa=1
    if(this.usebar){ var bx,by,bww,bh,oBb
        oNS=bw.ns6?this.oNS[this.l[0].maxnum]:0
        this.oBar=new cm_makeObj(\'div\'+this.name+\'Bar\',0,0,window,0,oNS)
        if(this.barx==\"menu\") bx=mpa&&rows?this.checkp(m[0],1,0,1)-border:x-border; else{ bx=this.checkp(this.barx,1,0,1) }
        if(this.bary==\"menu\") by=mpa&&!rows?this.checkp(m[0],0,0,1)-border:y-border; else by=this.checkp(this.bary,0,0,1);  this.oBar.moveIt(bx,by)
        if(this.barwidth==\"menu\"){bww=rows?mpa?(this.checkp(m[m.length-1],1,0,1)-bx)+this.m[this.l[0].names[this.l[0].num-1]].width+border:(this.totwidth +this.pxbetween*(this.l[0].num-1)):this.maxwidth;
        bww+=!rows?border*2:0;}else bww=this.checkp(this.barwidth,1,0,1);
        if(bw.ie&&rows&&this.barwidth==\"100%\"&&this.useframes) bww+=parseInt(self.document.body.leftMargin)*2
        if(this.barheight==\"menu\"){bh=!rows?mpa?(this.checkp(m[m.length-1],0,0,1)-by)+this.m[this.l[0].names[this.l[0].num-1]].height+border:(this.totheight + this.pxbetween*(this.l[0].num-1)):this.maxheight;
        bh+=rows?this.l[0].border*2:0;} else bh=this.checkp(this.barheight,0,0,1);
        this.oBar.clipTo(0,bww,bh,0,1);
        if(this.barinheritborder&&border){oBb=new cm_makeObj(\'div\'+this.name+\'Barb\',0,0,window,\'div\'+this.name+\'Bar\');
        oBb.moveIt(border,border); oBb.clipTo(0,bww-border*2,bh-border*2,0,1); oBb=null;}
    }this.l[0].o=new Array()
    for(j=0;j<this.l[0].maxnum;j++){
        this.l[0].o[j]=new cm_makeObj(\'div\'+this.name+\'0_\'+j,this,0,window,\'div\'+this.name+\'0_\'+j+\'b\'); if(bw.ns6) oNS=this.oNS[j]; else oNS=0
        this.l[0].o[j].oBorder=new cm_makeObj(\'div\'+this.name+\'0_\'+j+\'b\',0,0,window,0,oNS)
        obj=this.l[0].o[j]; w=this.m[this.l[0].names[j]].width; h=this.m[this.l[0].names[j]].height
        obj.addEvents(this.l[0].names[j],this.name,this.m[this.l[0].names[j]].lnk,this.useclick); obj.clipTo(0,w,h,0,1)
        if(mpa){if(rows==1) x=this.checkp(m[j],0,1,1); else y=this.checkp(m[j],0,0,1)}
        obj.moveIt(border,border);
        obj.setactive(0,this.l[0].names[j])
        obj.oBorder.moveIt(x-border,y-border); obj.oBorder.clipTo(0,w+border*2,h+border*2,0,1); obj.oBorder.showIt()
        if(rows==0) y+=h+border+this.pxbetween
        else x+=w+border+this.pxbetween; obj.showIt()
    }if(!rr){
        if(this.useclick) coolFMouseup+=this.name+\".mmout(\'\',1);\"; if(!this.useframes&&!bw.ns4) this.refresh()
        else if(!this.useframes&&bw.ns4){l=\"\"; if(onload){l=String(onload.toString()); l=l.replace(\"function onload(event)\",\"\"); l=l.slice(25,l.length-2)} l+=this.name+ \".refresh();\"; onload=new Function(l)}
        if(this.resizecheck) setTimeout(\'window.onresize=new Function(\"\'+this.name+\'.resized()\")\',500)
        if(this.checkscroll){if(bw.ns4 || bw.ns6){if(this.checkscroll!=2&&this.useframes!=1){setTimeout(\"cm_checkScrolled(\"+this.name+\")\",200)}}}
        if(this.useframes&&!rr) this.checkFrame(0); else this.win=window
    }
}
/************
Refreshing/making all sub elements
*************/
function cm_refresh(ev){
    var border,obj,oNS,oNS2
    if(this.useframes) page=new makePageCoords(this.win,this.useframes); else page=toppage
    for(i=1;i<this.l.length;i++){
        this.l[i].o=new Array();
        border=this.l[i].border; defheight=this.checkp(this.l[i].height)
        if(bw.ns4){oNS=new Layer(this.l[i].width,this.win); oNS.zIndex=(500+i);  if(this.l[i].border) oNS.bgColor=this.l[i].bordercolor;}
        else if(bw.ns6){oNS=document.createElement(\"DIV\"); oNS.setAttribute(\"style\",this.ns6styleb[i]); this.win.document.body.appendChild(oNS)}
        this.l[i].oBorder=new cm_makeObj(\'div\'+this.name+i+\"b\",0,0,this.win,0,oNS)
        for(j=0;j<this.l[i].maxnum;j++){
            if(bw.ns4){oNS2=new Layer(this.l[i].width,oNS);}
            else if(bw.ns6){oNS2=document.createElement(\"DIV\");    oNS2.setAttribute(\"style\",this.ns6style[i]); oNS.appendChild(oNS2)}
            this.l[i].o[j]=new cm_makeObj(\'div\'+this.name+i+\'_\'+j,this,i,this.win,0,oNS2)
            obj=this.l[i].o[j]; if(!obj.addEvents) return; obj.moveIt(border,(border+defheight)*j + border)
        }   
    }this.loaded=1;
    if(this.checkscroll&&bw.ie){this.win.document.body.onscroll=new Function(\"cm_checkScrolled(\"+this.name+\")\"); cm_checkScrolled(this)}
    if(this.useclick){this.win.document.onmouseup=new Function(coolFMouseup); if(this.useframes) document.onmouseup=new Function(coolFMouseup); }
    if(!bw.ns4&&this.checkselect) this.sel=bw.ie4?this.win.document.all.tags(\"SELECT\"):this.win.document.getElementsByTagName(\"SELECT\")
}
function cm_NS6_createElement(st,inn){el=document.createElement(\"DIV\"); if(st) el.setAttribute(\"style\",st); if(inn) el.innerHTML=inn; document.body.appendChild(el); return el}
/************
Making code
*************/
function cm_construct(){
    this.level=null; var str=\"\"; var str2=\"\"; var frstr=\"\"; var tempstr; num=bw.ie?this.l.length:1;
    for(i=0;i<num;i++){
        if(i!=0) frstr+=\'<div id=\"div\'+this.name+i+\'b\" style=\"\'+this.ns6styleb[i]+\'\" class=\"cl\'+this.name+i+\'b\">\\n\'
        for(j=0;j<this.l[i].maxnum;j++){
            tempstr=\'<div id=\"div\'+this.name+i+\'_\'+j+\'\" \'; if(i!=0) tempstr+=\'style=\"\'+this.ns6style[i]+\'\"\'
            if(i==0){n=this.l[0].names[j]; txt=this.m[n].text
                if(!bw.ns6){
                    str+=\'<div id=\"div\'+this.name+\'0_\'+j+\'b\" class=\"cl\'+this.name+\'b\'+i+\'\">\'
                    str+=tempstr+\' class=\"cl\'+this.name+i+\'\">\'+txt+\'</div>\'; str+=\'</div>\\n\'
                }else this.oNS[j]=cm_NS6_createElement(this.ns6styleb[i],tempstr+\' class=\"cl\'+this.name+i+\'\">\'+txt+\'</div>\')
            }else frstr+=tempstr+\'\"></div>\\n\'
        }if(i!=0){frstr+=\'</div>\\n\'}
    }if(this.usebar){
        if(this.barinheritborder) str2=\'<div id=\"div\'+this.name+\'Barb\"></div>\';
        if(bw.ns6) this.oNS[this.l[0].maxnum]=cm_NS6_createElement(this.ns6styleb[this.ns6styleb.length-1],str2)
        else{str+=\'<div id=\"div\'+this.name+\'Bar\">\';str+=str2+\'</div>\\n\'}
    }if(!this.useframes&&bw.ie) str+=frstr; else this.frstr=frstr; if(!bw.ns6) document.write(str)
    this.makeTop();    if(this.useframes) window.onerror=cm_check_error;
}
coolFrameError=0//Trapping external pages in frame error!
function cm_check_error(e){e=e.toLowerCase(); if(e.indexOf(\"access\")>-1||e.indexOf(\"permission\")>-1){coolFrameError=1; return true;}else return false}
/**************
Make styles
**************/
function cm_makeStyle(){
    var str=\"<style>\\n\"; var zindex=150;  var c,w,st,bg
    this.ns6style=new Array(); this.ns6styleb=new Array()
    for(i=0;i<this.l.length;i++){
        if(i==0){if(bw.ns4){w=\"width:\" +this.l[0].width+\";\"; this.l[i].style=\"\"} else w=\"\"; str+=\'.cl\'+this.name+i+\'{position:absolute; \'+w+\' background-color:transparent; color:\'+this.l[i].tc+\';\'+this.l[i].style+\'; cursor:pointer; cursor:hand; visibility:inherit; z-index:\'+zindex+\'}\\n\'}
        else{st=\'position:absolute; \'+this.l[i].style+\';  cursor:pointer; cursor:hand; visibility:inherit; z-index:\'+zindex; this.ns6style[i]=st}
        bc=this.l[i].border?bw.ns4?\'layer-background-color:\'+this.l[i].bordercolor:\'; background-color:\'+this.l[i].bordercolor:\"\";
        if(!bw.ns4) bc+=\"; overflow:hidden\"
        tempstr=\'position:absolute; clip:rect(0,0,0,0); visibility:hidden; \'+bc+\'; z-index:\'+(zindex-50)
        if(i==0&&!bw.ns6) str+=\'.cl\'+this.name+\'b\'+i+\'{\'+tempstr+\'}\\n\';
        else this.ns6styleb[i]=tempstr; zindex+=100
    }   
    if(this.usebar){
        bg=this.barinheritborder?this.l[0].bordercolor:this.barcolor
        st=\'z-index:80; position:absolute; background-color:\'+bg+\'; layer-background-color:\'+bg
        if(!bw.ns6) str+=\'#div\'+this.name+\'Bar{\'+st+\'}\\n\'; else this.ns6styleb[this.ns6styleb.length]=st
        if(this.barinheritborder){str+=\'#div\'+this.name+\'Barb{z-index:85; position:absolute; background-color:\'+this.barcolor+\'; layer-background-color:\'+this.barcolor+\'}\\n\'}
    }
    if(bw.ns4) str+=\"A.clNS4{text-decoration:none; padding:\"+this.NS4padding+\"}\\n\"; document.write(str+\"\\n</style>\\n\")
}
/************
Refreshing page if it\'s resized
*************/
function cm_resized(){
    page2=new makePageCoords(window,this.useframes);
    if(page2.x2!=toppage.x2 || page2.y2!=toppage.y2){
        if(!bw.ns4){
            toppage=new makePageCoords(window,this.useframes); this.makeTop(1)
            if(!this.useframes) page=toppage; this.isresized=1; eval(this.resizecode)
        }else{this.win.location.reload(); location.reload()}
    }if(!bw.ns4&&this.useframes){page=new makePageCoords(this.win,this.useframes)}
}
/************
Going to another page
*************/
function cm_go(name){
    obj=this.m[name]; url=obj.lnk; target=obj.target; fc=obj.mclick
    if(url){
        if(this.useframes&&!coolFrameError) loc=this.win.location.href; else loc=location.href
        if(fc) eval(fc); url=this.checkFolder(loc.toString(),url); this.isover=0;
        this.hideSubs(1,0,1); this.isclicked=0; this.aobj[0]=-1
        if(String(target)==\"undefined\" || target==\"\" || target==0 || target==\"_self\"){
            this.win.location.href=url
        }else if(target==\"_blank\") window.open(url)
        else if(target==\"_top\" || target==\"window\") top.location.href=url 
        else if(top[target]) top[target].location.href=url
        else{fr=findFrame(target); if(fr) fr.location.href=url}
    }else if(fc) eval(fc)
}
/************
Getting folders - THANKS TO DCAGE FOR THIS FIX
*************/
function cm_checkFolder(tmp,url){
    if(url.indexOf(\"mailto:\")>-1 || url.indexOf(\"/\")==0 || url.indexOf(\"http://\")==0) return url
    else if(this.useframes && bw.ie || bw.ns6) return url
    var addr=\'\'; var lvl=\'\'; var off_cnt=0; var cnt=0;
    if(tmp.indexOf(\'file:\')>-1 || tmp.charAt(1)==\':\') addr=this.offlineUrl;
    else if(tmp.indexOf(\'http:\')>-1) addr=this.onlineUrl;
    for(var i=0;i<addr.length;i++){if(addr.charAt(i)==\'\\/\') off_cnt+=1}
    for(var i=0;i<tmp.length;i++){if(tmp.charAt(i)==\'\\/\'){ cnt+=1; if(cnt>off_cnt) lvl+=\'../\'; }}
    return lvl + url
}
/************
Checkloaded for the frames version
*************/
function cm_checkLoaded(ev,ns){
    coolFName=eval(coolFName)
    var ok=0
    if(document.layers){
        if(ns){coolFName.refresh(); coolFName.nsload=1; ok=1; coolFrameError=0
        }else if(ev.target.name==coolFName.frame&&!coolFName.nsload){coolFName.refresh(); ok=1; coolFrameError=0; routeEvent(ev)}
    }else if(bw.ie){
        if (coolFName.win.document.readyState == \"complete\"){
            coolFName.win.document.body.insertAdjacentHTML(\"beforeEnd\",coolFName.frstr)
            coolFName.win.document.body.onunload=cm_unloaded; coolFName.refresh(); ok=1; coolFrameError=0
        }else setTimeout(\"cm_checkLoaded()\",200)
    }else if(bw.ns6){
        if(coolFName.win.document){
            if(coolFName.win.document.body){coolFName.win.addEventListener(\"unload\", cm_unloaded, true); coolFName.refresh(); ok=1; coolFrameError=0}
            else setTimeout(\"cm_checkLoaded()\",200)
        }else setTimeout(\"cm_checkLoaded()\",200)
    }
}
function cm_unloaded(ev){coolFName=eval(coolFName); if(!coolFName) return; if(document.layers && ev.target.name!=coolFName.frame) return; else coolFName.nsload=0; coolFName.loaded=0; if(!document.layers) setTimeout(\"cm_checkLoaded()\",200)}
/************
Make menu object
*************/
var coolFName=\"\"; var onload; var coolFMouseup=\"\";
function makeCoolMenu(name){
    coolFName=name; this.name=name; this.lastScrolled=0;
    this.win=window; toppage=new makePageCoords(window,parent.frames.length);
    this.aobj=new Array(); this.m=new Array(); this.l=new Array()
    this.level=new Array(); this.resized=cm_resized;
    this.makeMenu=cm_makeMenu; this.showSubs=cm_showSubs; this.makeTop=cm_makeTop;
    this.getCoords=cm_getCoords; this.checkPage=cm_checkPage;
    this.mmout=cm_mout; this.mover=cm_mover; this.checkp=cm_checkp;
    this.hideSubs=cm_hideSubs; this.construct=cm_construct;
    this.makeStyle=cm_makeStyle; this.refresh=cm_refresh;
    this.go=cm_go; this.frstr=\"\"; this.mobj=new Array()
    this.totwidth=0; this.totheight=0; this.maxwidth=0; this.maxheight=0
    this.tim=10; this.loaded=0; this.isover=false; this.checkFrame=cm_checkFrame;
    this.checkFolder=cm_checkFolder; this.hcode=\"\"; this.oNS=new Array(); this.oNS2=new Array()
    bw.filter=(bw.ie6||bw.ver.indexOf(\"MSIE 5.5\")>-1) && !bw.mac
}
/************
Find frame
*************/
function findFrame(frameName){
    obj=top; var frameObj=0;
    for(i=0;i<obj.frames.length;i++){
        if(obj.frames[i].name==frameName){frameObj=obj.frames[i]; break;}; ln=obj.frames[i].frames.length
        for(j=0;j<ln;j++){
            if(obj.frames[i].frames[j].name==frameName){frameObj=obj.frames[i].frames[j];  break}; ln2=obj.frames[i].frames[j].frames.length
            for(a=0;a<ln2;a++){
                if(obj.frames[i].frames[j].frames[a].name==frameName){frameObj=obj.frames[i].frames[j].frames[a]; break}
            }
        }
    }return frameObj
}
/************
Checking for frame
*************/
function cm_checkFrame(num){
    var fr; if(num==10){debug(\'Frame: \'+this.frame+\' doesn\\\'t exist - Value: \'+fr + \" - Could not build menus.\"); return}
    if(!top.frames[this.frame]) fr=findFrame(this.frame); else fr=top.frames[this.frame]
    if(!fr){num++; setTimeout(this.name+\".checkFrame(\"+num+\")\",500)
    }else{ this.win=fr
        if(bw.ns4){
            top.frames.captureEvents(Event.UNLOAD); top.frames.captureEvents(Event.LOAD); top.frames.onunload=cm_unloaded;
            top.frames.onload = cm_checkLoaded;    setTimeout(\"cm_checkLoaded(0,1)\",1000)
        }else if((bw.ie||bw.ns6)) setTimeout(\"cm_checkLoaded()\",200)
    }
}   

---
/FFN
Avatar billede jakoba Nybegynder
19. august 2001 - 20:52 #1
Ja.
Det påstås at i nyeste IE kan man sætte zIndex så højt at det kommer over iframe.
Men generelt er reglen at frames er hvert sit vindue, og ikke kan tegne indeni hinanden.
For at sinulere \'rage ind over\' tegner man så samme layer to gange, en i hver ramme, så de ser ud som at være et layer tilsammen.

mvh JakobA
Avatar billede ffn Nybegynder
19. august 2001 - 20:55 #2
?????
Avatar billede jakoba Nybegynder
19. august 2001 - 20:59 #3
Forestil dig notepad åben, og browseren åben ved siden af. Skulle et lag tegnet i browseren så kunne rage ud i notepad winduet?

Det er samme situation du laver med frames, to eller flere separate vinduer. De ligger blot tæt ved hinanden.
Avatar billede ffn Nybegynder
19. august 2001 - 21:05 #4
men hvad er løsningen?
Avatar billede jakoba Nybegynder
19. august 2001 - 21:18 #5
De der dropdown menyer bliver tegnet som et lag. For at \'rage indover\' skal det lage tegnes to gange.

en gang i den ene ramme (hvor halvdelen af laget falder udover rammekanten og ikke kan ses.
Den anden gang i den anden ramme, omhyggeligt placeret så det nu er den anden halvdel der falder udover og de t halvdele ny står rigtigt i forhold til hinanden så det ser ud somom der kunne er eet sammenhængede lag.
Avatar billede roenving Novice
19. august 2001 - 23:16 #6
>>Bare et forsøg på at gætte:

kan man ikke sætte et z-index på iframe\'n, som er en anelse højere end det bagved-liggende, og så sætte z-index på menu-div\'en *meget* højere -- jeg har prøvet det, hvor der ikke var tale om iframes -- der virkede det (da vi holdt op med at bruge negative z-index ;·] )
Avatar billede fomse Nybegynder
20. august 2001 - 00:13 #7
I Netscape (4.07 og 6.0) ser det helt tosset ud!!!
Bare lige til orientering....

Fomse:-)
Avatar billede ffn Nybegynder
20. august 2001 - 10:39 #8
Hvad ser helt tosset ud, menuen eller hele siden....jeg er klar over at menuen ikke ser helt optimal ud, men hvis det er hele siden der ser tosset ud, kan du så fortælle mig hvad det drejer sig om?

/FFN
Avatar billede ffn Nybegynder
20. august 2001 - 10:42 #9
Arrg, jeg hader netscape, hvorfor skal der altid være problemer med det lorte prog......!!!!!!!!

Her sider man og prøver at vende ens små grå i håb om at man kan løse problemet og vupti så opstår et nyt!!!!!!

Hvorfor er jeg ikke en haj til at prog.

DAMN!!!
Avatar billede pelkjaer Nybegynder
20. august 2001 - 10:47 #10
I NS 4.08 er det eneste der vises : Grå skærm samt \"javascript error\" i statusbaren.
Avatar billede ffn Nybegynder
22. august 2001 - 13:40 #11
Hvorfor kan jeg ikke afgive point her?
Avatar billede ffn Nybegynder
22. august 2001 - 13:41 #12
Nå, der ingen der gar svaret kun kommenteret!!
Avatar billede roenving Novice
22. august 2001 - 15:33 #13
Jamen har du da fået noget ud det for alvor -- der er jo ikke mange af os, som har synes vi gav noget, som var den point-mængde du lagde frem værd.

Men æh ...
hvis du synes, du har fået nåed, så fortæl hvad ...
.-)jes
Avatar billede ffn Nybegynder
22. august 2001 - 15:46 #14
Nej ikke en skid, men jakoba var den første til indirekte at fortælle mig at jeg ligeså godt kunne glemme alt om det!!

Og det har jeg gjort se evt. spm. 101181
Avatar billede ffn Nybegynder
26. august 2001 - 10:49 #15
Det gad jeg ikke vente på!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester