Buona sera, ho visto un applet JAVA sul sito HTML.it (http://www.html.it/java/a451/applet.htm) e ho riprodotto lo script
in JavaScript. Pero quando ho riprodotto lo script ho fatto riferimento ad una costrutto visto in un altro script (JavaScript) che si trova sempre su HTML.it (http://www.html.it/mailing/archivio/a125/esempio.htm) però di questo script non ho mai capito una parte, potete spiegarmi che significa? ve la delimiterò con dei commenti (/* questa è la parte che non capisco */) nel HTML del codice:
codice:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>HTML.it - il sito italiano sul Web publishing | Un JavaScript a settimana | HTML.it</TITLE>
<style>
A:link, A:visited { text-decoration: none }
A:hover { text-decoration: underline }
</style>
<style>
#divMenu {font-family:arial,helvetica; font-size:8pt; font-weight:bold} //grandezza testo
#divMenu a{text-decoration:none;}
#divMenu a:hover{color: black;}
</style>
<script language="JavaScript1.2">
ie=document.all?1:0
n=document.layers?1:0
lshow=40
var move=30;
menuSpeed=40
var moveOnScroll=true
var tim;
var ltop;
function makeMenu(obj,nest){
nest=(!nest) ? '':'document.'+nest+'.'
this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style')
this.state=1
this.go=0
this.width=n?this.css.document.width:eval(obj+'.offsetWidth')
this.left=b_getleft
/* questa è la parte che non capisco */
this.obj = obj + "Object"; eval(this.obj + "=this") // questa è la parte che non capisco
/* questa è la parte che non capisco */
}
function b_getleft(){
var gleft=(n) ? eval(this.css.left):eval(this.css.pixelLeft);
return gleft;
}
function moveMenu(){
if(!oMenu.state){
clearTimeout(tim)
mIn()
}else{
clearTimeout(tim)
mOut()
}
}
function mIn(){
if(oMenu.left()>-oMenu.width+lshow){
oMenu.go=1
oMenu.css.left=oMenu.left()-move
tim=setTimeout("mIn()",menuSpeed)
}else{
oMenu.go=0
oMenu.state=1
}
}
function mOut(){
if(oMenu.left()<0){
oMenu.go=1
oMenu.css.left=oMenu.left()+move
tim=setTimeout("mOut()",menuSpeed)
}else{
oMenu.go=0
oMenu.state=0
}
}
function checkScrolled(){
if(!oMenu.go) oMenu.css.top=eval(scrolled)+ltop
if(n) setTimeout('checkScrolled()',30)
}
function menuInit(){
oMenu=new makeMenu('divMenu')
scrolled=n?"window.pageYOffset":"document.body.scrollTop"
oMenu.css.left=-oMenu.width+lshow
ltop=(n)?oMenu.css.top:oMenu.css.pixelTop;
oMenu.css.visibility='visible'
if(moveOnScroll) ie?window.onscroll=checkScrolled:checkScrolled();
}
onload=menuInit;
</script>
</HEAD>
<BODY BGCOLOR="white" vlink="blue" link="blue">
<div id="divMenu" style="position:absolute; top:20; left:120; width:200; visibility:hidden; background-color:F0F0F0">
<nobr>
Html.it -
Forum -
Flash-mx.it -
MENU
</nobr>
</div>
<div align="center"><font color="#333333">clicca sul link MENU</font></div>
</div>
<font size=1 face="arial">
<div align="center">
<SCRIPT LANGUAGE="JAVASCRIPT">
<!--
var browName = navigator.appName;
var browDateTime = (new Date()).getTime();
var browVersion = parseInt(navigator.appVersion);
var ua=navigator.userAgent.toLowerCase();
var adcode='';
if (browName=='Netscape'){
if (browVersion>=5)
{ document.write('<ifr'+'ame src="http://ad.html.it/banman.asp?ZoneID=36&Task=Get&Browser=NETSCAPE6&X=' + browDateTime + '" width=468 height=60 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No></ifr'+'ame>'); }
else if ((browVersion>=4)&&(ua.indexOf("mac")==-1))
{ document.write('<S'+'CRIPT src="http://ad.html.it/banman.asp?ZoneID=36&Task=Get&Browser=NETSCAPE4">');
document.write('</'+'scr'+'ipt>');
document.write(adcode); }
else if (browVersion>=3)
{ document.write('
'); } }
if (browName=='Microsoft Internet Explorer')
{ document.write('<ifr'+'ame src="http://ad.html.it/banman.asp?ZoneID=36&Task=Get&X=' + browDateTime + '" width=468 height=60 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No></ifr'+'ame>'); }
// -->
</script>
<noscript>
<a href="http://ad.html.it/banman.asp?ZoneID=36&Task=Click&Mode=HTML&PageID=7414" target="_new">
</a>
</noscript>
</div>
<div id="divDescription">
</div>
</font></BODY>
</HTML>
Per chi può interessare posto il codice dello script in JavaScript che ho riprodotto vedendo l'applet:
codice:
<html>
<head>
<title>Menu</title>
</head>
<body>
<script type="text/javascript">
<!--
var voceMenu=new Array();
voceMenu[0]="Home page";
voceMenu[1]="Forum";
voceMenu[2]="Mailing list";
voceMenu[3]="Javascript";
voceMenu[4]="Applet Java";
voceMenu[5]="Sondaggi";
var oggettoMenu=new Array();
var altezza=23;
var larghezza=100;
var id_contenitore="contenitore";
// metodo decolora
function decolora() {
document.getElementById(this.nomeOggettoHTML).style.backgroundColor="pink";
};
// metodo getLeft
function getLeft() {
var getLeft=parseInt(document.getElementById(this.nomeOggettoHTML).style.left);
return getLeft;
};
// metodo mouseOver
function mouseOver() {
if(eval("window."+this.nomeOggetto+".timer")) clearTimeout(this.timer);
document.getElementById(this.nomeOggettoHTML).style.backgroundColor="orange";
document.getElementById(this.nomeOggettoHTML).style.left="40px";
};
// metodo mouseOut
function mouseOut() {
if(this.getLeft()>0) {
document.getElementById(this.nomeOggettoHTML).style.left=this.getLeft()-1;
}
else {
clearTimeout(this.timer);
};
this.timer=window.setTimeout(this.nomeOggetto+".mouseOut();",20);
};
// classe Menu
function Menu(numeroArray) {
this.nomeOggetto="oggettoMenu["+numeroArray+"]";
this.nomeOggettoHTML="subMenu"+numeroArray;
this.numeroArray=numeroArray;
this.testo=voceMenu[this.numeroArray];
this.timer=null;
this.mouseOver=mouseOver;
this.mouseOut=mouseOut;
this.decolora=decolora;
};
// funzione costruzioneSubMenu
function costruzioneSubMenu() {
for(var x=0; x<voceMenu.length; x++) {
document.getElementById(id_contenitore).innerHTML+="<div id=\""+oggettoMenu[x].nomeOggettoHTML+"\" style=\"position:absolute; top:"+(altezza*oggettoMenu[x].numeroArray)+"px; left:0px; width:100px; height:"+altezza+"px; background-color:pink; border:#ffffff 2px outset;\" onmouseover=\""+oggettoMenu[x].nomeOggetto+".mouseOver();\" onmouseout=\""+oggettoMenu[x].nomeOggetto+".decolora(); "+oggettoMenu[x].nomeOggetto+".mouseOut();\">"+oggettoMenu[x].testo+"</div>";
oggettoMenu[x].getLeft=getLeft;
};
};
// funzione inizia
function inizia() {
for(var x=0; x<voceMenu.length; x++) oggettoMenu[x]=new Menu(x);
costruzioneSubMenu();
};
// funzione all'avvio
window.onload=inizia;
// costruzione contenitore
document.write("<div id=\""+id_contenitore+"\" style=\"position:absolute; top:20px; left:20px; border:#000000 0px solid; width:250px; height:250px; color:#ffffff; font:bold 1pc arial; text-align:center\"> </div>");
//-->
</script>
</body>
</html>
Grazie a chi mi risponderà.