Newsgroup: it.comp.lang.javascript
Titolo: guardate lo script e spiagatemi perchè succede così........

Ciao, qua di seguito vi ho messo l'intero codice sorgente e java script che
ho usato per fare la pagina.
Si tratta di una classico script che calcola il peso forma.
Non l'ho creato io ma l'ho modificato.
Originariamente con il calcolo generava un commento, mentre ora apre una
finestra con il risultato.
Il problema è che con explorer si vede mentre con netscape mi fa partire gli
alert che sono previsti nel caso l'utente non metta tutti i dati.
Vorrei capire perchè succede tenendo conto che:
uso explorer 5 e netscape 4.7
che con netscape lo script originario funzionava....
che su un macintosh netscape lo vede perfettamente (non so la versione)
aiutatemi voi.
grazie
<html>
 <head>
  <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  <meta name="generator" content="Adobe GoLive 4">
  <title>Body Mass Index</title>
 </head>
 <body background="/cms/gfx/heal_bg_icon.gif" bgcolor="#e2ffa5"
text="#315201" link="#4b7d02" vlink="#75a22c" alink="#538a02">
  <script language="JAVASCRIPT"><!--
function ClearForm(form){
    form.weight.value = "";
    form.height.value = "";
    form.bmi.value = "";
    form.my_comment.value = "";
}
function bmi(weight, height) {
          bmindx=weight/eval(height*height);
          return bmindx;
}
function checkform(form) {
       if (form.weight.value==null||form.weight.value.length==0 ||
form.height.value==null||form.height.value.length==0){
            alert("\nPer favore completa l'inserimento dei dati");
            return false;
       }
       else if (parseFloat(form.height.value) <= 0||
                parseFloat(form.height.value) >=500||
                parseFloat(form.weight.value) <= 0||
                parseFloat(form.weight.value) >=500){
                alert("\nDati impossibili: Controlla ! \nPer favore
reinserisci i valori. \nPeso in Kg e \naltezza in cm");
                ClearForm(form);
                return false;
       }
       return true;
}
function computeform(form) {
       if (checkform(form)) {
       yourbmi=Math.round(bmi(form.weight.value, form.height.value/100));
       form.bmi.value=yourbmi;
       if (yourbmi >40) {
infowin=window.open('risultato_01.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210','center');
       }
       else if (yourbmi >35 && yourbmi <=40) {
infowin=window.open('risultato_02.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210','center');
       }
       else if (yourbmi >30 && yourbmi <=35) {
infowin=window.open('risultato_03.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210','center');
       }
       else if (yourbmi >25 && yourbmi <=30) {
infowin=window.open('risultato_04.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210','center');
       }
       else if (yourbmi >=22 && yourbmi <=25) {
infowin=window.open('risultato_05.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210','center');
       }
       else if (yourbmi >=19 && yourbmi <22) {
infowin=window.open('risultato_06.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210','center');
       }
       else if (yourbmi >=16 && yourbmi <19) {
infowin=window.open('risultato_07.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210','center');
       }
       else if (yourbmi <16) {
infowin=window.open('risultato_08.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210','center');
       }
       }
       return;
}
// -->
  </script>
  <a name="calc"></a>&nbsp;
  <table border="0" cellpadding="0" cellspacing="2" width="500">
   <tr>
    <td>
     <div align="left">
      <form method="post" name="BMI">
      <font color="#548600" face="Verdana"
size="3"><b>&#8226;</b></font><b><font face="Verdana" size="3"> Inserisci il
tuo peso e la tua altezza,<br>
      scopri se sei in forma.</font></b><br>
      <p>
      <table border="1" width="240">
       <tr>
        <td>
         <center>
          <font size="1" face="Verdana"><b>Il tuo Peso
(kg)</b></font></center>
        </td>
        <td>
         <center>
          <font face="Verdana" size="1"><b>La tua altezza
(cm)</b></font></center>
        </td>
       </tr>
       <tr>
        <td><input name="weight" size="14" type="text"
onfocus="this.form.weight.value=''"></td>
        <td><input name="height" size="14" type="text"
onfocus="this.form.height.value=''"></td>
       </tr>
      </table>
      </p>
      <p>
      <table border="1" width="240">
       <tr height="10">
        <td height="10" colspan="2" align="right">
         <center>
          <font size="1" face="Verdana"><b>Clicca</b></font></center>
        </td>
        <td height="10">
         <center>
          <font size="1" face="Verdana"><b>B.M.I.(*)</b></font></center>
        </td>
       </tr>
       <tr>
        <td><input type="button" value="Valuta"
onclick="computeform(this.form)"></td>
        <td><input type="reset" value="Annulla"
onclick="ClearForm(this.form)"></td>
        <td><input name="bmi" size="9" type="text"></td>
       </tr>
      </table>
      </p>
      <p><!--<table border="1" width="240">
   <tr>
    <td>
     <center>
      <font face="Verdana" size="1"><b>Commenti</b></font></center>
    </td>
   </tr>
   <tr>
    <td>
    <textarea name="my_comment" cols="26" rows="5"></textarea>
    </td>
   </tr>
  </table>-->
      </form>
      <font size="1" face="Verdana"><b>(*)B.M.I.= Body Mass
Index</b></font></p>
     </div>
     <div align="left">
      <p>&nbsp;</div>
    </td>
   </tr>
  </table>
  <br>
  &nbsp;
 </body>
</html>



Gli errori sono in tutti i ritorni a capo dove finisce il rigo qui, e poi la
sintassi corretta è questa di tutte le finestre devi cancellare gli apici a
destra height, e a sinistra di center (IN TUTTE LE FINESTRE).
Esempio corretto di tutte le finestre:
infowin=window.open('risultato_01.html','infowin','toolbar=no,status=no,top=
300,left=600,width=310,height=210,center');
ESEMPIO SBAGLIATO QUI SOTTO:
 }
infowin=window.open('risultato_01.html','infowin','toolbar=no,status=no,top=
 300,left=600,width=310,height=210','center');
        }
----------------------------------------------------------------------------
--------------------------------------------
un altro errore è qui :
alert("\nDati impossibili: Controlla ! \nPer favore
reinserisci i valori. \nPeso in Kg e \naltezza in cm");
Sempre il ritorno a capo, in modo corretto cosi':
alert("\nDati impossibili: Controlla ! \nPer favore reinserisci i valori.
\nPeso in Kg e \naltezza in cm");
----------------------------------------------------------------------------
-------------------------------------------------------------------
BYE BYE GLASSMAN