Gå til innhold

Hvorfor vises ikke Javascript-menyen i Mozilla/Netscape?


Anbefalte innlegg

Dette er en slidemeny som virker fra iexplorer og opera, men ikke fra mozilla og netscape. Kan noen som er guru på javascript fortelle meg hvorfor?

 

Legger ved hele sriptet:

 

function lib_bwcheck(){ //Browsercheck (needed)

this.ver=navigator.appVersion

this.agent=navigator.userAgent

this.dom=document.getElementById?1:0

this.opera5=this.agent.indexOf("Opera 5")>-1

this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;

this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;

this.ie4=(document.all && !this.dom && !this.opera5)?1:0;

this.ie=this.ie4||this.ie5||this.ie6

this.mac=this.agent.indexOf("Mac")>-1

this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;

this.ns4=(document.layers && !this.dom)?1:0;

this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)

return this

}

var bw=new lib_bwcheck()

 

function makeMenuObj(obj,nest){

nest=(!nest) ? "":'document.'+nest+'.'

this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;

this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;

this.ref=bw.dom || bw.ie4? document:bw.ns4?eval(nest+"document.layers." +obj+".document"):0;

this.x=(bw.ns4 || bw.ns5)? this.css.left:this.css.offsetLeft;

this.y=(bw.ns4 || bw.ns5)? this.css.top:this.css.offsetTop;

this.hideIt=b_hideIt; this.showIt=b_showIt; this.movey=b_movey

this.moveIt=b_moveIt; this.moveBy=b_moveBy; this.status=0;

this.bgImg=b_bgImg; this.obj = obj + "Object"; eval(this.obj + "=this");

this.clipTo=b_clipTo;

return this

}

function b_showIt(){this.css.visibility="visible"; this.status=1}

function b_hideIt(){this.css.visibility="hidden"; this.status=0}

function b_movey(y){this.y=y; this.css.top=this.y}

function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x;this.css.top=this.y}

function b_moveBy(x,y){this.x=this.x+x; this.y=this.y+y; this.css.left=this.x;this.css.top=this.y}

function b_bgImg(img){if(bw.ie||bw.dom)this.css.backgroundImage="url('"+img+"')"

else this.css.background.src=img

}

function b_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}}}

 

function SlideMenuInit(){

oSlideMenu=new makeMenuObj('divSlideCont')

oSlideMenu.moveIt(menux,menuy)

oSlide=new Array()

for(i=0;i<menus.length;i++){

oSlide=new makeMenuObj('divSlide'+i,'divSlideCont')

oSlide.subs=menus.subs

oSlide.sub=new Array()

oSlide.moveIt(0,mainheight*i)

oSlide.starty=oSlide.y

if(bw.opera) oSlide.css.paddingLeft="10px"

if(!menus.seperator) oSlide.bgImg(level0_regular)

for(j=0;j<oSlide.subs;j++){

oSlide.sub[j]=new makeMenuObj('divSlideSub'+i+"_"+j,'divSlideCont')

oSlide.sub[j].moveIt(10,oSlide.y+subheight*j+between)

oSlide.sub[j].starty=oSlide.sub[j].y

oSlide[j]=new Array()

oSlide[j].subs=menus[j].subs

oSlide[j].sub=new Array()

img=level1_round

if(oSlide[j].subs!=0){

if(j!=oSlide.subs-1) img=level1_sub

else img=level1_sub_round

oSlide.sub[j].css.color="white"

}else{

if(j!=oSlide.subs-1)img=level1_regular

}

oSlide.sub[j].origimg=img

oSlide.sub[j].bgImg(img)

for(a=0;a<oSlide[j].subs;a++){

oSlide[j].sub[a]=new makeMenuObj('divSlideSub'+i+"_"+j+"_"+a,'divSlideCont')

oSlide[j].sub[a].moveIt(20,oSlide.sub[j].y+subheight*a+between-2)

oSlide[j].sub[a].starty=oSlide[j].sub[a].y

oSlide[j][a]=new Array()

oSlide[j][a].subs=menus[j][a].subs

oSlide[j][a].sub=new Array()

if(a!=oSlide[j].subs-1) img=level2_regular

else img=level2_round

oSlide[j].sub[a].origimg=img

oSlide[j].sub[a].bgImg(img)

}

}

}

oSlideMenu.showIt()

}

 

var active=-1;var going;var isthere; var sactive=-1; var sisthere=-1; var s2active=-1; var s2isthere=-1

 

function swmenu(num,snum,s2num){

if(snum!=-1){

if(oSlide[num][snum].subs==0) return

}

if(s2num!=-1){

if(oSlide[num][snum][s2num].subs==0) return

}

if((num!=active || snum!=sactive || s2num!=s2active) && !going){going=true;isthere=0;sisthere=0;moveUp(num,snum,s2num)}

}

 

function moveUp(num,snum){

if(snum==-1){

for(i=0;i<oSlide.length;i++){

if(oSlide.y>oSlide.starty+pxspeed && active!=i) oSlide.moveBy(0,-pxspeed)

else{if(active!=i) oSlide.moveIt(oSlide.x,oSlide.starty); isthere=i}

}

 

if(isthere<oSlide.length-1) setTimeout("moveUp("+num+","+snum+")",timspeed)

else swmenu2(num,snum)

}else{

if(num==oSlide.length-1) isthere=num

 

if(sactive!=-1){ //Is out!

//Slide subs

j=0

for(i=sactive+1;i<oSlide[num].sub.length;i++){

j++

if(oSlide[num].sub.y>oSlide[num].sub.starty+pxspeed) oSlide[num].sub.moveBy(0,-pxspeed)

else{oSlide[num].sub.moveIt(oSlide[num].sub.x,oSlide[num].sub.starty); sisthere=i}

}

//Slide main

for(i=num+1;i<oSlide.length;i++){

if(oSlide.y>oSlide.starty + oSlide[num].sub[sactive].y +subheight*j ) oSlide.moveBy(0,-pxspeed)

else{oSlide.moveIt(oSlide.x,oSlide.starty + oSlide[num].sub[sactive].y +subheight*j ); isthere=i}

}

}else{ //Slide to the one clicked

for(i=num+1;i<oSlide.length;i++){

if(oSlide.y>oSlide.starty + snum*between+between) oSlide.moveBy(0,-pxspeed)

else{oSlide.moveIt(oSlide.x,oSlide.starty + snum*between+between); isthere=i}

}

}

if(isthere<oSlide.length-1 || (sactive!=-1 && sisthere<oSlide[num].sub.length-1 && sactive!=oSlide[num].sub.length-1)) setTimeout("moveUp("+num+","+snum+")",timspeed)

else swmenu2(num,snum)

}

}

 

function swmenu2(num,snum){

isthere=0;

sisthere=0;

if(active>-1 && snum==-1){

//Hiding submenus

for(j=0;j<oSlide[active].subs;j++){oSlide[active].sub[j].hideIt()}

oSlide[active].bgImg(level0_regular)

oSlide[active].moveIt(0,oSlide[active].starty)

}

if(sactive>-1){

//Hiding submenus

for(j=0;j<oSlide[active][sactive].sub.length;j++){oSlide[active][sactive].sub[j].hideIt()}

oSlide[active].sub[sactive].bgImg(oSlide[active].sub[sactive].origimg)

oSlide[active].sub[sactive].moveIt(10,oSlide[active].sub[sactive].starty)

//Move back to place

for(i=sactive+1;i<oSlide[active].sub.length;i++){

oSlide[active].sub.moveIt(oSlide[active].sub.x,oSlide[active].sub.starty)

}

}

active=num

//Showing submenus

if(snum>-1){

sactive=snum

for(j=0;j<oSlide[num][snum].sub.length;j++){oSlide[num][snum].sub[j].showIt()}

oSlide[num].sub[snum].moveBy(10,3)

oSlide[num].sub[snum].bgImg(level1_round2)

}else{

sactive=-1

for(j=0;j<oSlide[active].subs;j++){oSlide[active].sub[j].showIt()}

oSlide[num].moveBy(10,3)

oSlide[num].bgImg(level0_round)

}

if(num!=oSlide.length-1) moveDown(num,snum)

else{

isthere=num

moveDown(num,snum)

}

}

 

function moveDown(num,snum){

//if(num==oSlide.length-1) isthere=num

for(i=num+1;i<oSlide.length;i++){

if(snum==-1){

if(oSlide.y<(oSlide[num].subs-1)*subheight+oSlide.starty+between-pxspeed) oSlide.moveBy(0,pxspeed)

else{oSlide.moveIt(oSlide.x,(oSlide[num].subs-1)*subheight+oSlide.starty+between); isthere=i}

}else{

if(oSlide.y<(oSlide[num].subs-1)*subheight+oSlide.starty+between-pxspeed + (oSlide[num][snum].subs-1)*subheight+between) oSlide.moveBy(0,pxspeed)

else{oSlide.moveIt(oSlide.x,(oSlide[num].subs-1)*subheight+oSlide.starty+between + (oSlide[num][snum].subs-1)*subheight+between); isthere=i}

}

}

if(snum!=-1){

for(i=snum+1;i<oSlide[num].sub.length;i++){

if(oSlide[num].sub.y<(oSlide[num][snum].subs-1)*subheight+oSlide[num].sub.starty+between-pxspeed) oSlide[num].sub.moveBy(0,pxspeed)

else{oSlide[num].sub.moveIt(oSlide[num].sub.x,(oSlide[num][snum].subs-1)*subheight+oSlide[num].sub.starty+between); sisthere=i}

}

}

if(snum==-1){

if(isthere<oSlide.length-1) setTimeout("moveDown("+num+","+snum+")",timspeed)

else going=false

}else{

if(isthere<oSlide.length-1 || (sisthere<oSlide[num].sub.length-1 && snum!=oSlide[num].sub.length-1)) setTimeout("moveDown("+num+","+snum+")",timspeed)

else going=false

}

}

var test=0

 

menus=new Array(); var a=0; var b=0; var c=0; var d=0

function makeMenu(type,text,lnk,target,end){

str=""; tg="";

if(target) tg='target="'+target+'"'

if(!lnk) lnk="#"

self.status=lnk

if(a==0) str='<div id="divSlideCont">n'

if(type=="top"){

menus[a]=new Array();

if(text=="seperator"){

str+='t<div id="divSlide'+a+'" class="clSlide"></div>n'

menus[a].seperator=1

}else{

str+='t<div id="divSlide'+a+'" class="clSlide"><a href="'+lnk+'" '+tg+' onclick="swmenu('+a+',-1,-1); if(bw.ie || bw.ns6) this.blur(); '

if(lnk=="#") str+='return false'

str+='" class="clSlideLinks fade"> '+text+'</a><br></div>n'

}

menus[a].subs=0; a++; b=0

}else if(type=="sub"){

str+='tt<div id="divSlideSub'+(a-1)+'_'+(B)+'" class="clSlideSub"><a '+tg+' onclick="swmenu('+(a-1)+','+b+',-1); if(bw.ie || bw.ns6) this.blur(); '

if(lnk=="#") str+='return false'

str+='" href="'+lnk+'" class="clSlideSubLinks fade"> '+text+'</a><br></div>n'

b++; menus[a-1].subs=b; menus[a-1][b-1]=new Array(); c=0; menus[a-1][b-1].subs=0

}else if(type=="sub2"){

str+='tt<div id="divSlideSub'+(a-1)+'_'+(b-1)+'_'+c+'" class="clSlideSub2"><a '+tg+' href="'+lnk+'" class="clSlideSub2Links fade"> '+text+'</a><br></div>n'

c++; menus[a-1][b-1].subs=c; menus[a-1][b-1][c-1]=new Array(); d=0; menus[a-1][b-1][c-1].subs=0

}

if(end) str+="</div>"

document.write(str)

}

function preLoadBackgrounds(){

for(i=0;i<arguments.length;i++){

this=new Image()

this.src=arguments

}

return this

}

Lenke til kommentar
  • 3 uker senere...
Videoannonse
Annonse

Tviler på att noen gidder å lese gjenom hele den koden... :)

Men jeg tittet litt på den, og det er vel ikke tilfeldigvis coolmenus fra www.dhtmlcentral.com (mulig jeg tar feil) :wink:

Jeg har selv prøvd meg litt med coolmenus, men har droppet å bruke det.

Jeg aner ikke hvor feilen er...

Sikker på at den funker i IE og ikke i Netscape??

Sjekk det en gang til.

du kan jo også laste ned nyeste versjon av coolmenus, og se om det funker da!

 

Lykke til! :smile: :smile: :smile:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...