Menu ve firefoxu
Napsal: čtv 15. zář 2005, 13:14
Mam udelane menu na strankach v IE exploreru vse funguje perfektne ale ne ve firefoxu.Muze mi nekdo poradit kde je chyba.Pokud budete chtit poslu soubory na mail pro prehlednost
1.cast///
/* Následující dvě proměnné jsou nastavitelné */
menuWidth=160; // šířka bloku submenu [px]
menuRight=30; // odsunutí submenu vpravo. Pokud je menší než menuWidth, bloky se budou překrývat
prepMenuLevel=-1;
lastSMB=0;
menu0mit=new Array(1);
menu0inf=new Array(1);
menu0ref=new Array(1);
menu0smb=new Array(1);
menu0N=0;
menuCurOp=new Array(1); menuCurOp[0]="";
menuClicked=false;
function menuItem(lvl,mit) {
if(arguments.length>2) inf=arguments[2]; else inf="";
if(arguments.length>3) ref=arguments[3]; else ref="";
while(lvl<prepMenuLevel) { document.writeln("</div>"); prepMenuLevel--; }
if(lvl==0) { // uložit horní úroveň
menu0mit[menu0N]=mit;
menu0inf[menu0N]=inf;
menu0ref[menu0N]=ref;
menu0smb[menu0N]=lastSMB+1;
menu0N++;
}
else {
if(lvl>prepMenuLevel) document.writeln("<div id=SMB"+lastSMB+" class='MENU' style='width: "+menuWidth+"px; visibility: hidden; position: absolute; padding: 0px;'>");
document.writeln("<div style='padding: 3px; border-bottom: 1px solid #CC0000;' onmouseover='this.style.backgroundColor=\"#333333\";' onmouseout='this.style.backgroundColor=\"Black\";'> "+menuItStr(lvl,mit,inf,ref,lastSMB+1)+"</div>");
}
prepMenuLevel=lvl;
if(ref=="") lastSMB++;
}
function menuDisplayPermanent() {
// ukončit bloky DIV
while(prepMenuLevel>0) { document.writeln("</div>"); prepMenuLevel--; }
// zobrazit MenuAlwaysVisible (horní úroveň)
document.write("<div class='MENU' style='border: 0px; padding: 2px 2px 2px 2px;'> ");
for(i=0;i<menu0N;i++) {
strg=menuItStr(0,menu0mit,menu0inf,menu0ref,menu0smb);
document.write(strg+(i<menu0N-1?" | ":""));
}
document.write(" </div>");
}
function menuClear() {
if(menuClicked) menuClicked=false;
else { menuClose(0); self.status=""; }
}
function menuClose(lvl) {
for(i=lvl;i<menuCurOp.length;i++) if(menuCurOp!="") {
document.getElementById(menuCurOp).style.visibility="hidden";
menuCurOp="";
}
}
function mUnp(elm,smb,lvl,mcl,inf) {
menuClicked=mcl;
menuClose(lvl); menuCurOp[lvl]=smb;
window.status=inf;
if(smb=="") return;
addX=addY=0;
prnt=elm.offsetParent;
if(lvl==0) while(prnt!=null) {
addX+=prnt.offsetLeft;
addY+=prnt.offsetTop;
prnt=prnt.offsetParent;
}
document.getElementById(smb).style.left=elm.offsetLeft+(lvl==0?addX:menuRight);
document.getElementById(smb).style.top=elm.offsetTop+(lvl==0?addY+elm.offsetHeight:-2);
document.getElementById(smb).style.visibility="visible";
}
function menuItStr(lvl,mit,inf,ref,smb) {
if(ref=="") {
return "<a href='javascript:void(0)' onMouseMove='mUnp(this,\"SMB"+smb+"\","+lvl+",false,\""+inf+"\");' onClick='mUnp(this,\"SMB"+smb+"\","+lvl+",true,\""+inf+"\");'>"+mit+"</a>";
}
else
return "<a href='"+ref+"' onMouseMove='mUnp(this,\"\","+lvl+",false,\""+inf+"\");'>"+mit+"</a>";
}
//konec
//2cast
/* DEFINICE MENU - fce menuItem:
1. argument = úroveň položky menu. Položky ve vždy zobrazované řádce mají úroveň 0. Položky
v blocích submenu mají úroveň 1, 2, atd. v pořadí otevírání
2. argument = text položky
3. argument (nepovinný) = text do status
4. argument (nepovinný) = odkaz na stránku. Pokud není definován odkaz na stránku, musí následovat
definice položky submenu (s úrovní o přesně 1 větší)!
POŘADÍ DEFINIC JE VÝZNAMNÉ! Postupně musí být definována nejprve celá jedna větev až do konce,
stejně se vyřeší všechna větvení směrem od konce.
*/
menuItem(0,"Ceník");
menuItem(1,"test","test","http://test");//konec
diky
1.cast///
/* Následující dvě proměnné jsou nastavitelné */
menuWidth=160; // šířka bloku submenu [px]
menuRight=30; // odsunutí submenu vpravo. Pokud je menší než menuWidth, bloky se budou překrývat
prepMenuLevel=-1;
lastSMB=0;
menu0mit=new Array(1);
menu0inf=new Array(1);
menu0ref=new Array(1);
menu0smb=new Array(1);
menu0N=0;
menuCurOp=new Array(1); menuCurOp[0]="";
menuClicked=false;
function menuItem(lvl,mit) {
if(arguments.length>2) inf=arguments[2]; else inf="";
if(arguments.length>3) ref=arguments[3]; else ref="";
while(lvl<prepMenuLevel) { document.writeln("</div>"); prepMenuLevel--; }
if(lvl==0) { // uložit horní úroveň
menu0mit[menu0N]=mit;
menu0inf[menu0N]=inf;
menu0ref[menu0N]=ref;
menu0smb[menu0N]=lastSMB+1;
menu0N++;
}
else {
if(lvl>prepMenuLevel) document.writeln("<div id=SMB"+lastSMB+" class='MENU' style='width: "+menuWidth+"px; visibility: hidden; position: absolute; padding: 0px;'>");
document.writeln("<div style='padding: 3px; border-bottom: 1px solid #CC0000;' onmouseover='this.style.backgroundColor=\"#333333\";' onmouseout='this.style.backgroundColor=\"Black\";'> "+menuItStr(lvl,mit,inf,ref,lastSMB+1)+"</div>");
}
prepMenuLevel=lvl;
if(ref=="") lastSMB++;
}
function menuDisplayPermanent() {
// ukončit bloky DIV
while(prepMenuLevel>0) { document.writeln("</div>"); prepMenuLevel--; }
// zobrazit MenuAlwaysVisible (horní úroveň)
document.write("<div class='MENU' style='border: 0px; padding: 2px 2px 2px 2px;'> ");
for(i=0;i<menu0N;i++) {
strg=menuItStr(0,menu0mit,menu0inf,menu0ref,menu0smb);
document.write(strg+(i<menu0N-1?" | ":""));
}
document.write(" </div>");
}
function menuClear() {
if(menuClicked) menuClicked=false;
else { menuClose(0); self.status=""; }
}
function menuClose(lvl) {
for(i=lvl;i<menuCurOp.length;i++) if(menuCurOp!="") {
document.getElementById(menuCurOp).style.visibility="hidden";
menuCurOp="";
}
}
function mUnp(elm,smb,lvl,mcl,inf) {
menuClicked=mcl;
menuClose(lvl); menuCurOp[lvl]=smb;
window.status=inf;
if(smb=="") return;
addX=addY=0;
prnt=elm.offsetParent;
if(lvl==0) while(prnt!=null) {
addX+=prnt.offsetLeft;
addY+=prnt.offsetTop;
prnt=prnt.offsetParent;
}
document.getElementById(smb).style.left=elm.offsetLeft+(lvl==0?addX:menuRight);
document.getElementById(smb).style.top=elm.offsetTop+(lvl==0?addY+elm.offsetHeight:-2);
document.getElementById(smb).style.visibility="visible";
}
function menuItStr(lvl,mit,inf,ref,smb) {
if(ref=="") {
return "<a href='javascript:void(0)' onMouseMove='mUnp(this,\"SMB"+smb+"\","+lvl+",false,\""+inf+"\");' onClick='mUnp(this,\"SMB"+smb+"\","+lvl+",true,\""+inf+"\");'>"+mit+"</a>";
}
else
return "<a href='"+ref+"' onMouseMove='mUnp(this,\"\","+lvl+",false,\""+inf+"\");'>"+mit+"</a>";
}
//konec
//2cast
/* DEFINICE MENU - fce menuItem:
1. argument = úroveň položky menu. Položky ve vždy zobrazované řádce mají úroveň 0. Položky
v blocích submenu mají úroveň 1, 2, atd. v pořadí otevírání
2. argument = text položky
3. argument (nepovinný) = text do status
4. argument (nepovinný) = odkaz na stránku. Pokud není definován odkaz na stránku, musí následovat
definice položky submenu (s úrovní o přesně 1 větší)!
POŘADÍ DEFINIC JE VÝZNAMNÉ! Postupně musí být definována nejprve celá jedna větev až do konce,
stejně se vyřeší všechna větvení směrem od konce.
*/
menuItem(0,"Ceník");
menuItem(1,"test","test","http://test");//konec
diky