Se il problema è solo questo, ecco i codici delle pagine: menu.js
codice:
//-------check del tipo di browser utilizzato--------------
var ie=(navigator.appName=="Microsoft Internet Explorer")?true:false;
var version = navigator.appVersion.split(';').toString().split(" ").toString().split(',')[4];
version=version.split('.')[0];
var wt=ie?version:null;
var isie5=((wt)>=5 && ie)?true:false;
var isie4=((wt <5 && wt >=4) && ie)?true:false;
var isNS4=(document.layers)?true:false;
var isNS6=document.getElementById && (navigator.appName=="Netscape")?true:false;
//alert( 'ie:' + ie );
//alert( 'version:' + version );
//alert( 'wt:' + ie );
//alert( 'isie4:' + isie4 );
//alert( 'isie5:' + isie5 );
//alert( 'isNS4:' + isNS4 );
//alert( 'isNS6:' + isNS6 );
mm=(isNS4)?'show':'visible';
nn=(isNS4)?'hide':'hidden';
//----------------calcolo della coordinata y di ogni livello------------------------------
ak=new Array();
for(df=0; df<pra.length; df++){
//-----------------------------
if(df==0){
ak[0]=0;
}
if(df>0 && pra[df][1]>pra[df-1][1]){
ak[df]=ak[df-1];
}
else if(df>0 && pra[df][1]==pra[df-1][1]){
ak[df]=ak[df-1]+21;
}
else if(df>0 && pra[df][1]<pra[df-1][1]){
for(po=df-1; po>=0; po--){
if(pra[df][1]==pra[po][1]){
ak[df]=ak[po]+21;
break;
}
}
}
pra[df][5]=ak[df]
}
//-------------------------------------------------------------------
//----------classifica---------------
ae=new Array();
ae_n=0;
for(d=0; d<pra.length; d++){
if(d>0 && pra[d][1]=='0'){
ae_n=ae_n+1;
}
ae[d]=""+"z"+ae_n
pra[d][6]=ae[d];
}
//--------mostra livelli--------------------------------------------
az=new Array();
for(df=0; df<pra.length; df++){
az[df]='';
if(pra[df][2]=="c"){
for(yf=0; yf<pra.length; yf++){
if((yf>df && pra[yf][6]==pra[df][6]) && pra[yf][1]==(eval(pra[df][1])+20)){
az[df]=''+az[df]+yf+',';
}
if(yf>df && pra[yf][1]<=pra[df][1]){
break;
}
}
pra[df][3]=az[df].substring(0,az[df].length-1)
}
}
//--------preload immagine aperta/chiusa------------------
imm0=new Image();
imm0.src="images/freccia1_close.gif"//"images/cart_ch.gif";
imm1=new Image();
imm1.src="images/freccia1_open.gif"//"images/cart_op.gif";
imm2=new Image();
imm2.src="images/void.gif"//"images/link.gif";
//------------------------------------------------------------------
// livello contenitore per tutto il menu
document.write('<div id="princ" style="position:relative;height:'+((pra.length*21)+top_pra)+';width:'+width_pra+';top:'+top_pra+';left:'+left_pra+'"></div>')
//----------------scrivi menu----------------------
lev="";
function wrt(){
for(i=0; i<pra.length; i++){
id_pra=""+"a"+i;
img_name=""+"v"+i;
target=( pra[i][4] == null ? '_self' : pra[i][4] );
if(pra[i][1]>0)
{
if(pra[i][2]=="c"){
lev+='<div id=\"'+id_pra+'\" style="position:absolute;visibility:'+nn+'; top:'+pra[i][5]+';left:'+left_pra+';height:20;width:'+width_pra+';background-color:\'#BFCEEE\';padding-left:'+(pra[i][1]/10*5)+'">[img]'+imm0.src+'[/img]<font class=subLev>'+pra[i][0]+'</font></div>';
}
else if(pra[i][2]=="ll"){
lev+='<div id=\"'+id_pra+'\" style="position:absolute;visibility:'+mm+'; top:'+(pra[i][5]+top_pra)+';left:'+left_pra+'; height:20; width:'+width_pra+';background-color:\'#BFCEEE\';">[img]'+imm2.src+'[/img] '+pra[i][0]+'</div>';
}
else{
lev+='<div id=\"'+id_pra+'\" style="position:absolute;visibility:'+nn+'; top:'+pra[i][5]+';left:'+left_pra+'; height:20;width:'+width_pra+';padding-left:'+(pra[i][1]/10*5)+'">[img]'+imm2.src+'[/img]'+pra[i][0]+'</div>';
}
}
else{
if(pra[i][2]=="c"){
lev+='<div id=\"'+id_pra+'\" style="position:absolute;visibility:'+mm+';top:'+(pra[i][5]+top_pra)+';left:'+left_pra+'; height:20; width:'+width_pra+';background-color:\'#042F93\';">[img]'+imm0.src+'[/img]<font class=firstLev> '+pra[i][0]+'</font></div>';
}
else if(pra[i][2]=="ll"){
lev+='<div id=\"'+id_pra+'\" style="position:absolute;visibility:'+mm+'; top:'+(pra[i][5]+top_pra)+';left:'+left_pra+'; height:20; width:'+width_pra+';background-color:\'#042F93\';">[img]'+imm2.src+'[/img] '+pra[i][0]+'</div>';
}
}
}
if(isie4)
document.all.princ.innerHTML=lev;
else
if (isie5 || isNS6)
{
document.getElementById("princ").innerHTML=lev
}
else
with (document.layers.princ.document)
{
open();
write(lev);
close();
}
}
var arpars = new Array();
function goapri(x,y,z,check)
{
if (check==0)
if (arpars.length>0)
{
apri(arpars[0],arpars[1],arpars[2]);
arpars=[x,y,z];
apri(arpars[0],arpars[1],arpars[2]);
}
else
{
arpars=[x,y,z];
apri(x,y,z)
}
else
apri(x,y,z)
}
//---------------------
function apri(id,idm,jj){
qq=id.split(',')
wh=(isNS4)?document.layers['princ'].layers[jj].document:document;
wt=(wh.images[idm].src==imm0.src)?imm1.src:imm0.src;
if(wt==imm1.src){
for(j=0; j<qq.length; j++){
iddd=""+"a"+qq[j]
snf=(isie4)?document.all[iddd].style:(isNS4)?document.layers['princ'].layers[iddd]:document.getElementById(iddd).style;
snf.visibility=mm;
}
//-----------
ql=pra.length-qq[0]
snn=(isie4)?document.all[jj].style:(isNS4)?document.layers['princ'].layers[jj]:document.getElementById(jj).style;
ftop=parseInt(snn.top)
for(k=0; k<ql; k++){
iddd=""+"a"+(k+parseInt(qq[0]))
snf=(isie4)?document.all[iddd].style:(isNS4)?document.layers['princ'].layers[iddd]:document.getElementById(iddd).style;
if(snf.visibility==mm){
ftop=ftop+21;
snf.top=ftop
}
}
//-----------
}
else{
ql=pra.length-qq[0]
snn=(isie4)?document.all[jj].style:(isNS4)?document.layers['princ'].layers[jj]:document.getElementById(jj).style;
ftop=parseInt(snn.top)
for(j=0; j<ql; j++){
iddd=""+"a"+(j+parseInt(qq[0]))
snf=(isie4)?document.all[iddd].style:(isNS4)?document.layers['princ'].layers[iddd]:document.getElementById(iddd).style;
if(pra[j+parseInt(qq[0])][1]>pra[parseInt(qq[0])-1][1]){
snf.visibility=nn;
}
if(snf.visibility==mm){
ftop=ftop+21;
snf.top=ftop
}
if(pra[j+parseInt(qq[0])][2]=="c"){
gg=""+"v"+(j+parseInt(qq[0]))
if(isNS4){
we=""+"a"+(j+parseInt(qq[0]))
wj=document.layers['princ'].layers[we].document.images[gg].src=imm0.src;
}
else{
wh.images[gg].src=imm0.src;
}
}
}
}
wh.images[idm].src=wt
}
//onload=wrt
var originalOnload = document.body.onload;
document.body.onload = redefinedOnload;
function redefinedOnload()
{
if ( originalOnload != null )
{
originalOnload();
}
wrt();
}
datimenu.js
codice:
// -- Parametri di visualizzazione
top_pra=0; // Distanza dal margine superiore della pagina
left_pra=0; // Distanza dal margine sinistro della pagina
width_pra=152; // Larghezza dei livelli
//------------------
// -- Destinazione dei links
// -- Parametri della pop-up per apertura dei links in pop.up
//
//
function popup(pagina,larga,alta)
{
fin=window.open(pagina,"","top=100,left=100,width="+larga+",height="+alta);
}
//---------------------------------------
// -- NON MODIFICARE LE DUE ISTRUZIONI SEGUENTI!!!
c=-1;
pra=new Array();
// -- ------------------------------------------------------------
/*#############################################
QUI VENGONO IMPOSTATE LE VOCI DI MENU E RELATIVI LINKS
seguendo l'esempio già impostato non è difficile realizzare il proprio menu.
L'indentazione è utile e consigliabile per meglio seguire anche a colpo d'occhio
la disposizione dei livelli.
Ogni voce di qualsiasi livello è composta dalla parte iniziale pra[c=c+1]=new Array(
Di seguito vengono passati 4 o 5 parametri di seguito descritti:
- voce ossia il testo che deve fisicamente comparire nel menu
- profondità del livello espressa con un numero BEN DEFINITO:
0 -> primo livello
20 -> secondo livello
40 -> terzo livello
60 -> quarto livello
- tipologia, ossia:
c -> cartella, indica che ci sono dei sottolivelli
l -> link è un link normale, solo testo
ll -> è un link che può essere interposto tra cartelle prendendone lo stesso aspetto
- link, solo per tipologia 'l' e 'll', indica il link a cui punta questa voce. Può essere un url, oppure un richiamo alla
funzione che apre un url in una finestra pop-up come nell'esempio dell'ultima voce.
- target, il target del link ( opzionale )
la formattazione di testi e colori avviene con il file menu.css.
*/
pra[c=c+1]=new Array("Chi Siamo",0,"c");
pra[c=c+1]=new Array("Missione",20,"l","chi_siamo/missione.asp", "Iframe" );
pra[c=c+1]=new Array("Attività",20,"l","chi_siamo/attivita.asp", "Iframe" );
pra[c=c+1]=new Array("Codice Etico",20,"l","etico.asp", "Iframe" );
pra[c=c+1]=new Array("Struttura Organizzativa",20,"l","chi_siamo/struttura.asp", "Iframe" );
pra[c=c+1]=new Array("Area Utenti Abilitati",0,"ll","pass/logon.asp", "Iframe");
pra[c=c+1]=new Array("Controllo",0,"c");
pra[c=c+1]=new Array("Documentazione",20,"l","chi_siamo/lavori.asp", "Iframe" );
pra[c=c+1]=new Array("Attività",20,"l","chi_siamo/lavori.asp", "Iframe" );
pra[c=c+1]=new Array("Cartografia",20,"l","http://paginaweb.com/" );
pra[c=c+1]=new Array("Eventi",20,"l","menucontr1.asp", "Iframe");
pra[c=c+1]=new Array("Misure",20,"l","menucontr2.asp", "Iframe");
// ----------------------------------------------------------------------------
I due js li richiamo così nelle pagine htm:
codice:
<script language="JavaScript" src="script/datimenu.js"></script>
<script language="JavaScript" src="script/menu.js"></script>
Grazie.