Condividi:        

Questionario online: NON funzionante (?)

Discussioni e opinioni costruttive sul mondo dell'informatica.
Per la soluzione di problemi specifici fare riferimento alle sezioni di assistenza!

Moderatori: aurelio37, Anthony47, axelrox

Questionario online: NON funzionante (?)

Postdi KID.A » 17/03/03 17:07

Eseguendo un Questionario online riscontro un problema di funzionamento in ambiente MAC (sia con Explorer 5x sia Netscape 7),
mentre in Win nessun problema.

E' dovuto ad una incompatibilità server ASP che ospita questo questionario online rispetto a sistema Mac,
oppure (come sospetto) c'è qualche incompatibilità dei codici Javascript [della popup dove si dovrebbe eseguire tramite domande a risposta multipla (con pulsanti radio) un quaetionario online]
con il DOM dei browsers per Mac?


Non potendo fornirvi il link (poiché l'accesso è solo tramite Login/Pwd riservati, e neppure miei), vi fornisco i codici che a mio pareri potrebbero essere la causa dell'impasse.
I codici sospetti sarebbero questi:

Codice: Seleziona tutto
<script LANGUAGE="Javascript">




function uscitaimprovvisa()
    {
    py=event.clientY;
    if (py<0)
    {
    event.returnValue="ATTENZIONE! Chiudendo la finestra in questo modo il sistema non registra definitivamente i dati e sarà possibile proseguire lo stesso questionario in seguito.\n Per registrare definitivamente i risultati è necessario premere il pulsante 'ANNULLA' ('CANCEL') in questa finestra e poi il pulsante 'ESCI' nella finestra principale, solo in questo caso il sistema comunicherà il punteggio ottenuto. ";

         }
        //alert(py + "Uscendo i dati non verranno registrati correttamente!")
    }





function cancella_cmenu()
    {
        event.returnValue=false;
       
    }
   
function inviaavanti()
{
document.forms('risposte').action=document.forms('risposte').elements('havanti').value;
document.forms('risposte').submit();
}

function inviaindietro()
{
document.forms('risposte').action=document.forms('risposte').elements('hindietro').value;
document.forms('risposte').submit();
}

function inviaavantiv()
{
document.forms('risposte').action=document.forms('risposte').elements('havantiv').value;
document.forms('risposte').submit();
}

function inviaindietrov()
{
document.forms('risposte').action=document.forms('risposte').elements('hindietrov').value;
document.forms('risposte').submit();
}

//segnala che è stat modificata una domanda e gestisce la rispota singola
function dommodificata(tipo,elem,nrisposte)

{

 var lett =new Array();
lett[1]='a';
lett[2]='b';
lett[3]='c';
lett[4]='d';
lett[5]='e';
lett[6]='f';


document.forms('risposte').elements('hmodificata').value="ok";
//alert(elem);
if (tipo=='s')
{

 for (i=1; i<=nrisposte; i++)
 {
    if (!(i==elem))
    {   
     strelem='risp' + lett[i];
     document.forms('risposte').elements(strelem).checked=false;
     }
 }
}
}

//chiamata quando ci si prepara a uscire
function uscita()
{
document.forms('risposte').elements('huscita').value="ok";
document.forms('risposte').action=document.forms('risposte').elements('hstruscita').value;
document.forms('risposte').submit();
}

//se si decide di non uscire
function nouscita()
{
document.forms('risposte').elements('huscita').value="no";
document.forms('risposte').action=document.forms('risposte').elements('hstruscita').value;
document.forms('risposte').submit();

}

//se si decide di uscire
function termina()
{
document.forms('risposte').action=document.forms('risposte').elements('hstrtermina').value;
document.forms('risposte').submit();
}

function doLoad()
{
setTimeout( "refresh()", 90*60*1000 );
}
function refresh()
{

window.location.href=window.location.href
//window.location.reload( false );
}


</script>


</head>







Questa è la stringa per il tasto AVANTI (per procedere appunto di domada in domanda):
NON COMPARE NEPPURE "manina", ed è INATTIVO il LINK per procedere:
Codice: Seleziona tutto
<p align="center" onclick="inviaavantiv()" style='cursor:hand'><img border="0" src="Img/avantiveloce.gif" width="32" height="17" alt="Avanti veloce (domanda senza risposta)"></p>


ciao e grazie sin d'ora!

codato meglio il codice per la comprensibilità. Nicola;)
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Sponsor
 

Postdi KID.A » 17/03/03 17:32

hai fatto bene, Nicola
ho evidenziato anche la seconda parte del codice.

Che mi dite riguardo al problema esposto? :undecided:
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi Triumph Of Steel » 17/03/03 18:10

l'ultimo codice ad occhio non è (secondo me) un link giusto...
manca <A HREF>

ho provato anche su NN 4, e non va neppure li...
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi KID.A » 17/03/03 19:23

controllo anche in Win...ma è così, sai e in Win funzionava, almeno con IE sì]

non so ....
o il problema è l'interfacciaris ASP - client mac
oppure qualche non-conformità dei codici ja (o meglio ECMA) rispetto alle specifiche w3c dei DOM


???
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi pjfry » 17/03/03 19:29

il server crea la pagina come gli dice il programmatore... se il browser per il mac ha qualcosa di diverso e questo non è previsto nel codice della pagina è normale che si veda male, ma non è colpa dell'ASP ;)
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Triumph Of Steel » 17/03/03 19:33

Di sicuro ci sono incompatibilità di sintassi javascript con IE/NN PC e IE/NN Mac... infatti per cose uguali, a volte vengono usate sintassi diverse per i diversi browser/S.O.

il problema che non ti esca la manina su quel link secondo me è per colpa dell'HREF (che manca)
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi pjfry » 17/03/03 19:37

l'ho ritagliato, ci ho fatto una pagina e a me la manina appare...
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Triumph Of Steel » 17/03/03 20:00

Su Netscape e Macintosh??

Su explorer abbiamo detto che va (quello si mangia di tutto)!
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi pjfry » 17/03/03 20:14

:oops: ah, l'avevate detto? su explorer...
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi piercing » 18/03/03 00:01

dunque... su Netscape difficilmente ti apparirà la manina (non credo proprio che il cursor hand sia supportato, e tipicamente explorer style), ma il link dovrebbe fungere ugualmente... basta cliccare...

per provare se l'evento onclick funziona su un tag <P> basta che ti crei un evento di prova del tipo:

<p onclick="alert('funziona')">Cliccami</p>
<p onclick="javascript:alert('funziona')">Cliccami</p>
<span onclick="alert('funziona')">Cliccami</span>

se nessuna di queste funge devi provare la forma classica:

<a href="#" onclick="alert('funziona'); return false;">Cliccami</a>

Non so che motore Netscape utilizzi il MAC che hai sottomano... ma le "novità" sono da sempre piuttosto indigeste sul NN.

Fammi sapere.
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi KID.A » 18/03/03 01:51

allora:

xToS
- purtroppo su Mac NON funziona neppure su Explorer...(non è solo questione dello stile del cursore "hand", ma è proprio che cliccando non procede alla pagina successiva)
[mentre, verificato, in Win tutto OK]

x Piercing
- proverò su Mac (ora sono su Win) gli alerts per l'evento "onclick "...utilizzo NN 7, ma come detto sopra neppure su Explorer 5x funziona !

Mi chiedevo (per tentativi) se qualcosa nella prima parte di codice (metodo "document.forms" etc) potesse non essere conforme agli standard ECMA...non so?


Ciao
cmq GRAZIE a tutti....vediamo se riusciamo a capire dove sta il nocciolo della questione!
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi piercing » 18/03/03 01:56

KID, a naso avrei ridotto tutti quei codici ad un numero di righe comprese tra 5 e 10... riducendo così anche le possibilità di incompatibilità... (e per rendere la pagina più leggera). Mi sembra che tutte le funzioni facciano sempre la stessa cosa...
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi KID.A » 18/03/03 02:12

Sono d'accordo con te!
il fatto è che non l'ho sviluppato io quel sito (ma tecnici di un grosso provider...) io ne ho solo verificato l'incompatibilità con Mac [che però è prprio il s.o. che usa colui che ha sviluppato il contenuto dei questionari, che è pure il mio capo... :undecided: ]

Scrivimi pure, se vuoi, come avresti "riassunto" i codici.
Mi interessa vedere.


Provo qualcosa anch'io (codici, alert etc)
intanto, prima di andare a letto, mi sto leggendo questo:
http://developer.apple.com/internet/jav ... tests.html


CIAO, grazie
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi KID.A » 19/03/03 18:57

allora, Piercing

tutti gli alert rispondono correttamete (sia IE5x/mac sia NN 7 /mac)
tuttavia solo la forma <a href ...> visualizza la "manina"


Risolto questo resta il problema più grosso:
cioè il gfatto che i link NON funzionano !!!

Ho rifatto come segue i codici e li ho provato offline sui vari browsers (ovviamente i link, che sono rimandano a un db su piattaforma asp, non rispondono;
--> sui browsers WIN linkano ad una pagina non trovata...ma linkano!
--> mentre sui browsers/mac NON linkano affatto....

questi i codici modificati:

Codice: Seleziona tutto
<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive 4">
        <script LANGUAGE="Javascript">




function uscitaimprovvisa()
    {
    py=event.clientY;
    if (py<0)
    {
    event.returnValue="ATTENZIONE! Chiudendo la finestra in questo modo il sistema non registra definitivamente i dati e sarà possibile proseguire lo stesso questionario in seguito.\n Per registrare definitivamente i risultati è necessario premere il pulsante 'ANNULLA' ('CANCEL') in questa finestra e poi il pulsante 'ESCI' nella finestra principale, solo in questo caso il sistema comunicherà il punteggio ottenuto. ";

         }
        //alert(py + "Uscendo i dati non verranno registrati correttamente!")
    }





function cancella_cmenu()
    {
        event.returnValue=false;
       
    }
   
function inviaavanti()
{
document.forms('risposte').action=document.forms('risposte').elements('havanti').value;
document.forms('risposte').submit();
}

function inviaindietro()
{
document.forms('risposte').action=document.forms('risposte').elements('hindietro').value;
document.forms('risposte').submit();
}

function inviaavantiv()
{
document.forms('risposte').action=document.forms('risposte').elements('havantiv').value;
document.forms('risposte').submit();
}

function inviaindietrov()
{
document.forms('risposte').action=document.forms('risposte').elements('hindietrov').value;
document.forms('risposte').submit();
}

//segnala che è stat modificata una domanda e gestisce la rispota singola
function dommodificata(tipo,elem,nrisposte)

{

 var lett =new Array();
lett[1]='a';
lett[2]='b';
lett[3]='c';
lett[4]='d';
lett[5]='e';
lett[6]='f';


document.forms('risposte').elements('hmodificata').value="ok";
//alert(elem);
if (tipo=='s')
{

 for (i=1; i<=nrisposte; i++)
 {
    if (!(i==elem))
    {   
     strelem='risp' + lett[i];
     document.forms('risposte').elements(strelem).checked=false;
     }
 }
}
}

//chiamata quando ci si prepara a uscire
function uscita()
{
document.forms('risposte').elements('huscita').value="ok";
document.forms('risposte').action=document.forms('risposte').elements('hstruscita').value;
document.forms('risposte').submit();
}

//se si decide di non uscire
function nouscita()
{
document.forms('risposte').elements('huscita').value="no";
document.forms('risposte').action=document.forms('risposte').elements('hstruscita').value;
document.forms('risposte').submit();

}

//se si decide di uscire
function termina()
{
document.forms('risposte').action=document.forms('risposte').elements('hstrtermina').value;
document.forms('risposte').submit();
}

function doLoad()
{
setTimeout( "refresh()", 90*60*1000 );
}
function refresh()
{

window.location.href=window.location.href
//window.location.reload( false );
}


</script>
    </head>






<body onload="doLoad()" onbeforeunload='uscitaimprovvisa()' xonkeydown='cancella_cmenu()' xoncontextmenu='cancella_cmenu()' bgcolor="#FFFFFF">        <center>
            <table border="0" width="100%" cellspacing="1" cellpadding="3">
                <tr>
                    <td width="152" bgcolor="white" style="border: 1 solid #000080" align="center" rowspan="3"><img border="0" src="Img/*******.gif"></td>
                    <td bgcolor="#d90000" style="border: 1 solid #000080" align="center" width="48%"><font color="white" size="2" face="Arial"><b>**************</b></font></td>
                    <td bgcolor="#d90000" style="border-right: 1 solid #000080; border-top: 1 solid #000080; border-bottom: 1 solid #000080" align="center" width="57%"><font color="white" face="Arial" size="2"><b>Questionario 002 </b></font><font face="Arial" size="2"><b><br>
                        </b></font><b><font size="1" color="black" face="Arial">(MINUTI: 0 circa)</font> </b></td>
                </tr>
                <tr>
                    <td width="48%" style="border-left: 1 solid #000080; border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font color="white" size="1" face="Arial"><b>Domanda n& 1 di 100</b></font></td>
                    <td width="57%" style="border-left: 1 solid #000080; border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font color="white" face="Arial" size="1"><b>Domande senza risposta: 100</b></font></td>
                </tr>
                <tr>
                    <td colspan="2" bgcolor="#b7cfe2" style="border-right: 1 solid #000080; border-bottom: 1 solid #000080">
                        <center>
                            <font color="#003466" size="1" face="Arial"><b>Tematica: DL</b></font></center>
                    </td>
                </tr>
            </table>
        </center>
        <center>
            <p>
            <form name="risposte" method="POST" action="(Empty Reference!)">
            <table border="0" width="90%" cellspacing="0" cellpadding="3" height="110">
                <tr height="49">
                    <td colspan="2" bgcolor="#b7cfe2" style="border: 1 solid #000080" height="49"><font face="Arial" size="2"><b>1) Che tipo di informazione fornisce l'immagine scintigrafica? </b><br>
                        <br>
                        </font></td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white" style="border-left: 1 solid #000080; border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49"><font face="Arial" size="2">funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white" style="border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio" name="rispa" value="ON" onclick="dommodificata('s',1,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white" style="border-left: 1 solid #000080; border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49"><font face="Arial" size="2">morfo-funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white" style="border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio" name="rispb" value="ON" onclick="dommodificata('s',2,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white" style="border-left: 1 solid #000080; border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49"><font face="Arial" size="2">strutturale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white" style="border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio" name="rispc" value="ON" onclick="dommodificata('s',3,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white" style="border-left: 1 solid #000080; border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49"><font face="Arial" size="2">morfologica<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white" style="border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio" name="rispd" value="ON" onclick="dommodificata('s',4,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white" style="border-left: 1 solid #000080; border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49"><font face="Arial" size="2">nessuna delle precedenti<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white" style="border-right: 1 solid #000080; border-bottom: 1 solid #000080" height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio" name="rispe" value="ON" onclick="dommodificata('s',5,5)"> </font></center>
                    </td>
                </tr>
                <input name="havanti" type="hidden" value="domanda.asp?utente=..................."><input name="hindietro" type="hidden"><input name="hiddom" type="hidden" value="243"><input name="havantiv" type="hidden" value="domanda.asp?utente=..................."><input name="hindietrov" type="hidden" value="=fr"><input name="hmodificata" type="hidden" value="no"><input name="huscita" type="hidden" value="no"><input name="hstruscita" type="hidden" value="domanda.asp?utente=..................."><input name="holdambito" type="hidden" value="dl_02"><input name="hcolambito" type="hidden" value="2"><input name="hstrtermina" type="hidden" value="termina.asp?utente=........">
                </form>
            </table>
            </p>
        </center>
        <center>
            <p><br>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="40%">
                <tr>
                    <td width="25%"></td>
                    <td width="25%"></td>
                    <td width="25%">
                        <center>

                     <a href="#" onclick="inviaavanti(); return false;"><img border="0" src="Img/arr_bluedown1.gif" width="15" height="15" alt="Avanti"></a></center>

                    </td>
                    <td width="25%">
                        <center>
 <a href="#" onclick="inviaavantiv(); return false;"><img border="0" src="Img/avantiveloce.gif" width="32" height="17" alt="Avanti veloce (domanda senza risposta)"></a>
</center>
                    </td>
                </tr>
            </table>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="20%" cellspacing="0" cellpadding="3" bordercolor="#000080" bgcolor="white">
                <tr>
                    <td width="25%" bgcolor="white" onclick="uscita()" style="cursor:pointer" <p align="center" > <img border="0" src="img/esci.gif" width="114" height="18" alt="esci e registra il test"> </td> </tr> </table> </center> </div> </body></td>
                </tr>
            </table>
        </center>
    </body>

</html>



Cosa devo modificare ?
gli elementi (?) document.forms ?
la gestione Eventi ??

Ciao, grazie

usato il giusto tag BB per il coding del testo. Nicola
....me ne ero accorto proprio ora...grazie. Kid A
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi piercing » 21/03/03 13:15

KID, andiamo con ordine...

Elencami tutti i browser che hai provato, indicando la piattaforma e la versione del borwser...

sii dettagliato che sennò diventiamo tutti matti... ;)

io penso che non sia un problema di piattaforma ma di browser... ma è solo un'impressione forse...
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi Nicola » 21/03/03 13:50

se ben ho capito non funziona neanche su ie+mac .. invece va su ie+win ;)
Nicola
Nicola
Utente Senior
 
Post: 7381
Iscritto il: 08/02/02 01:00

Postdi piercing » 21/03/03 14:03

volevo esserne certo Niko...
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi KID.A » 21/03/03 18:32

per la precisione:

FUNZIONA:
su WIN (Explorer 5x e + )


NON FUNZIONA:
WIN (Netscape 6x e +)
MAC - classic 9x ( Explorer 5x ; Netscape 7x)



Mi rendo conto che pè un bel problema...cmq concordo anch'io che, a naso (non essendo esperto..non ancora ;) ) che si tratti di compatibilità codici javascript/Dom
[mi ha stupito il NON funzionamento su Explorer/mac...]


Dovrei cambiare la gestione eventi con riferimento al DOMLevel2, e come?
oppure basta qualche altra modifica limitata per estendere la cxompatiilità?
--> i gestori evento "onbeforeunload, xonkeydown, xoncontextmenu" non sono sicuro che siano crossbrowrse....che ne dite???
e come posso renderli crossbrowser?
GRAZIE
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi piercing » 22/03/03 18:44

allora... partiamo dalla fine...

credo anche io che quegli eventi non siano crossbrowsers...
ma il problema non è quello... (o almeno non solo)

da un primo debug il problema è nelle righe dove fai riferimento ai document.forms

l'errore che si verifica quasi sempre è di questo tipo:

Error: document.forms is not a function
Source File: file:quest.htm#
Line: 34

l'errore mi pare sia sempre quello.

Sebbene mi pare veramente ridondante tutto quanto hai scritto in javascript (tutta il codice JScript credo si possa riassumere in 10/20 righe... non di più), il problema è essenzialmente che document.forms con le parentesi tonde viene visto come una funzione...

devi usare le parentesi quadre quando fai riferimento ad un array di oggetti come nel caso di forms o elements (insomma per tutti quelle parole che finiscono per S in pratica :D ).

Impara ad usare uno strumento di debug per Javascript, e vedrai che tutto sarà più semplice.

Per testare i motori Mozilla io uso sempre phoenix, che ha il vantaggio che non è invasivo in nessuna maniera nei confronti del sistema operativo ed ha una comodissima consolle di debug del javascript... (che comunque hanno tutti browser di classe Mozilla... se solo foste un pò più curiosi sui vari menù ;) ).

Non sperare che ti corregga io tutto il codice KID..., divertiti... :D

un ultimo appunto... esistono le variabili anche in javascript... prova ad usare qualcosa del tipo...

frm = document.forms('risposte')

tanto per dirne una...
e vedrai che il codice pesa la metà!!
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi KID.A » 23/03/03 01:37

Andiamo per punti:

- gli oggetti con proprietà "document.forms", li avevogièà
cambiati[stamattina, mentre attendevo un tuo reply], sostituendo le
parentesi quadre al posto delle tonde, cioè:
[code ]document.forms['risposte'].action=document.forms['risposte'].elements
['hindietrov']....[/code]
...però non mi ha risolto il prblema!


- mi puoi charire il discorso sulle variabili, tipo:
frm = document.forms('risposte')


- non voglio che mi corregga tu tutto il codice (sarebbe bello, ma alla fine
non imparo molto):
però, siccome non me ne intendo ancora, ti chiedo se hai pazienza di darmi
le indicazioni e dare un'occhiata ai miei tentativi.
Ecco il primo tentativo:

Codice: Seleziona tutto

<html>
    <head>
            <script LANGUAGE="Javascript">


function uscitaimprovvisa(e)
{
if(!e) e = window.event;
py=e.clientY;
if (py<0)
{
if(e.preventDefault) e.preventDefault()
else e.returnValue=true
/*
event.returnValue="ATTENZIONE! ...etc etc. ";
*/
}
//alert(py + "Uscendo i dati non verranno registrati
correttamente!")
}



function cancella_cmenu(e)
    {
if(!e) e = window.event;
py=e.clientY;
if (py<0)
{
if(e.preventDefault) e.preventDefault()
else e.returnValue=false
/*
event.returnValue=false;
*/
    }

function inviaavanti()
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
ti'].value;
document.forms['risposte'].submit();
}

function inviaindietro()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etro'].value;
document.forms['risposte'].submit();
}

function inviaavantiv()
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
tiv'].value;
document.forms['risposte'].submit();
}

function inviaindietrov()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etrov'].value;
document.forms['risposte'].submit();
}

//segnala che è stat modificata una domanda e gestisce la rispota singola
function dommodificata(tipo,elem,nrisposte)

{

var lett =new Array();
lett[1]='a';
lett[2]='b';
lett[3]='c';
lett[4]='d';
lett[5]='e';
lett[6]='f';


document.forms['risposte'].elements['hmodificata'].value="ok";
//alert(elem);
if (tipo=='s')
{

for (i=1; i<=nrisposte; i++)
{
    if (!(i==elem))
    {
     strelem='risp' + lett[i];
     document.forms['risposte'].elements[strelem].checked=false;
     }
}
}
}

//chiamata quando ci si prepara a uscire
function uscita()
{
document.forms['risposte'].elements['huscita'].value="ok";
document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
document.forms['risposte'].submit();
}

//se si decide di non uscire
function nouscita()
{
document.forms['risposte'].elements['huscita'].value="no";
document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
document.forms['risposte'].submit();

}

//se si decide di uscire
function termina()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hstrt
ermina'].value;
document.forms['risposte'].submit();
}

function doLoad()
{
setTimeout( "refresh()", 90*60*1000 );
}
function refresh()
{

window.location.href=window.location.href
//window.location.reload( false );
}

</script>
    </head>


<body onload="doLoad()" onbeforeunload='uscitaimprovvisa(event)'
xonkeydown='cancella_cmenu(event)' xoncontextmenu='cancella_cmenu(event)'
bgcolor="#FFFFFF">
   <center>
            <table border="0" width="100%" cellspacing="1" cellpadding="3">
                <tr>
                    <td width="152" bgcolor="white" style="border: 1 solid
#000080" align="center" rowspan="3"><img border="0"
src="Img/*******.gif"></td>
                    <td bgcolor="#d90000" style="border: 1 solid #000080"
align="center" width="48%"><font color="white" size="2"
face="Arial"><b>**************</b></font></td>
                    <td bgcolor="#d90000" style="border-right: 1 solid
#000080; border-top: 1 solid #000080; border-bottom: 1 solid #000080"
align="center" width="57%"><font color="white" face="Arial"
size="2"><b>Questionario 002 </b></font><font face="Arial" size="2"><b><br>
                        </b></font><b><font size="1" color="black"
face="Arial">(MINUTI: 0 circa)</font> </b></td>
                </tr>
                <tr>
                    <td width="48%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" size="1" face="Arial"><b>Domanda n& 1 di 100</b></font></td>
                    <td width="57%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" face="Arial" size="1"><b>Domande senza risposta:
100</b></font></td>
                </tr>
                <tr>
                    <td colspan="2" bgcolor="#b7cfe2" style="border-right: 1
solid #000080; border-bottom: 1 solid #000080">
                        <center>
                            <font color="#003466" size="1"
face="Arial"><b>Tematica: DL</b></font></center>
                    </td>
                </tr>
            </table>
        </center>
        <center>
            <p>
            <form name="risposte" method="POST" action="(Empty Reference!)">
            <table border="0" width="90%" cellspacing="0" cellpadding="3"
height="110">
                <tr height="49">
                    <td colspan="2" bgcolor="#b7cfe2" style="border: 1 solid
#000080" height="49"><font face="Arial" size="2"><b>1) Che tipo di
informazione fornisce l'immagine scintigrafica? </b><br>
                        <br>
                        </font></td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial" size="2">funz
ionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispa" value="ON" onclick="dommodificata('s',1,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfo-funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispb" value="ON" onclick="dommodificata('s',2,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">strutturale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispc" value="ON" onclick="dommodificata('s',3,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfologica<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispd" value="ON" onclick="dommodificata('s',4,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">nessuna delle precedenti<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispe" value="ON" onclick="dommodificata('s',5,5)"> </font></center>
                    </td>
                </tr>
<input name="havanti" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietro" type="hidden">
<input name="hiddom" type="hidden" value="243">
<input name="havantiv" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietrov" type="hidden" value="=fr">
<input name="hmodificata" type="hidden" value="no">
<input name="huscita" type="hidden" value="no">
<input name="hstruscita" type="hidden"
value="domanda.asp?utente=...................">
<input name="holdambito" type="hidden" value="dl_02"><input
name="hcolambito" type="hidden" value="2">
<input name="hstrtermina" type="hidden" value="termina.asp?utente=........">
                </form>
            </table>
            </p>
        </center>
        <center>
            <p><br>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="40%">
                <tr>
                    <td width="25%"></td>
                    <td width="25%"></td>
                    <td width="25%">
                        <center>

                     <a href="#" onclick="inviaavanti(); return false;"><img
border="0" src="Img/arr_bluedown1.gif" width="15" height="15"
alt="Avanti"></a></center>

                    </td>
                    <td width="25%">
                        <center>
<a href="#" onclick="inviaavantiv(); return false;"><img border="0"
src="Img/avantiveloce.gif" width="32" height="17" alt="Avanti veloce
(domanda senza risposta)"></a>
</center>
                    </td>
                </tr>
            </table>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="20%" cellspacing="0" cellpadding="3"
bordercolor="#000080" bgcolor="white">
                <tr>
                    <td width="25%" bgcolor="white" onclick="uscita()"
style="cursor:pointer" <p align="center" > <img border="0"
src="img/esci.gif" width="114" height="18" alt="esci e registra il test">
</td> </tr> </table> </center> </div> </body></td>
                </tr>
            </table>
        </center>
    </body>

</html>


In questo 1° caso, su Explorer 5x/win (l'iunico su cui funzionava) mi dà un
sacco di errori di debug (Errore previsto - Eccezione di runTime JsScript!!!

***************************
***************************


[b]oppure [b/]

Codice: Seleziona tutto
<html>
<head>
<script LANGUAGE="Javascript">

function uscitaimprovvisa()
    {
    py=event.clientY;
    if (py<0)
    {
    event.returnValue="ATTENZIONE! Chiudendo la finestra in questo modo il
sistema non registra definitivamente i dati e sarà possibile proseguire lo
stesso questionario in seguito.\n Per registrare definitivamente i risultati
è necessario premere il pulsante 'ANNULLA' ('CANCEL') in questa finestra e
poi il pulsante 'ESCI' nella finestra principale, solo in questo caso il
sistema comunicherà il punteggio ottenuto. ";

         }
        //alert(py + "Uscendo i dati non verranno registrati
correttamente!")
    }


function cancella_cmenu()
    {
        event.returnValue=false;

    }

function inviaavanti()
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
ti'].value;
document.forms['risposte'].submit();
}

function inviaindietro()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etro'].value;
document.forms['risposte'].submit();
}

function inviaavantiv()
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
tiv'].value;
document.forms['risposte'].submit();
}

function inviaindietrov()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etrov'].value;
document.forms['risposte'].submit();
}

//segnala che è stat modificata una domanda e gestisce la rispota singola
function dommodificata(tipo,elem,nrisposte)

{

var lett =new Array();
lett[1]='a';
lett[2]='b';
lett[3]='c';
lett[4]='d';
lett[5]='e';
lett[6]='f';


document.forms['risposte'].elements['hmodificata'].value="ok";
//alert(elem);
if (tipo=='s')
{

for (i=1; i<=nrisposte; i++)
{
    if (!(i==elem))
    {
     strelem='risp' + lett[i];
     document.forms['risposte'].elements[strelem].checked=false;
     }
}
}
}

//chiamata quando ci si prepara a uscire
function uscita()
{
document.forms['risposte'].elements['huscita'].value="ok";
document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
document.forms['risposte'].submit();
}

//se si decide di non uscire
function nouscita()
{
document.forms['risposte'].elements['huscita'].value="no";
document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
document.forms['risposte'].submit();

}

//se si decide di uscire
function termina()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hstrt
ermina'].value;
document.forms['risposte'].submit();
}

function doLoad()
{
setTimeout( "refresh()", 90*60*1000 );
}
function refresh()
{

window.location.href=window.location.href
//window.location.reload( false );
}

</script>
    </head>


<body onload="doLoad()" onbeforeunload='uscitaimprovvisa()'
xonkeydown='cancella_cmenu()' xoncontextmenu='cancella_cmenu()'
bgcolor="#FFFFFF">        <center>
            <table border="0" width="100%" cellspacing="1" cellpadding="3">
                <tr>
                    <td width="152" bgcolor="white" style="border: 1 solid
#000080" align="center" rowspan="3"><img border="0"
src="Img/*******.gif"></td>
                    <td bgcolor="#d90000" style="border: 1 solid #000080"
align="center" width="48%"><font color="white" size="2"
face="Arial"><b>**************</b></font></td>
                    <td bgcolor="#d90000" style="border-right: 1 solid
#000080; border-top: 1 solid #000080; border-bottom: 1 solid #000080"
align="center" width="57%"><font color="white" face="Arial"
size="2"><b>Questionario 002 </b></font><font face="Arial" size="2"><b><br>
                        </b></font><b><font size="1" color="black"
face="Arial">(MINUTI: 0 circa)</font> </b></td>
                </tr>
                <tr>
                    <td width="48%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" size="1" face="Arial"><b>Domanda n& 1 di 100</b></font></td>
                    <td width="57%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" face="Arial" size="1"><b>Domande senza risposta:
100</b></font></td>
                </tr>
                <tr>
                    <td colspan="2" bgcolor="#b7cfe2" style="border-right: 1
solid #000080; border-bottom: 1 solid #000080">
                        <center>
                            <font color="#003466" size="1"
face="Arial"><b>Tematica: DL</b></font></center>
                    </td>
                </tr>
            </table>
        </center>
        <center>
            <p>
            <form name="risposte" method="POST" action="(Empty Reference!)">
            <table border="0" width="90%" cellspacing="0" cellpadding="3"
height="110">
                <tr height="49">
                    <td colspan="2" bgcolor="#b7cfe2" style="border: 1 solid
#000080" height="49"><font face="Arial" size="2"><b>1) Che tipo di
informazione fornisce l'immagine scintigrafica? </b><br>
                        <br>
                        </font></td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispa" value="ON" onclick="dommodificata('s',1,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfo-funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispb" value="ON" onclick="dommodificata('s',2,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">strutturale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispc" value="ON" onclick="dommodificata('s',3,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfologica<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispd" value="ON" onclick="dommodificata('s',4,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">nessuna delle precedenti<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispe" value="ON" onclick="dommodificata('s',5,5)"> </font></center>
                    </td>
                </tr>
<input name="havanti" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietro" type="hidden">
<input name="hiddom" type="hidden" value="243">
<input name="havantiv" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietrov" type="hidden" value="=fr">
<input name="hmodificata" type="hidden" value="no">
<input name="huscita" type="hidden" value="no">
<input name="hstruscita" type="hidden"
value="domanda.asp?utente=...................">
<input name="holdambito" type="hidden" value="dl_02"><input
name="hcolambito" type="hidden" value="2">
<input name="hstrtermina" type="hidden" value="termina.asp?utente=........">
                </form>
            </table>
            </p>
        </center>
        <center>
            <p><br>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="40%">
                <tr>
                    <td width="25%"></td>
                    <td width="25%"></td>
                    <td width="25%">
                        <center>

                     <a href="#" onclick="inviaavanti(); return false;"><img
border="0" src="Img/arr_bluedown1.gif" width="15" height="15"
alt="Avanti"></a></center>

                    </td>
                    <td width="25%">
                        <center>
<a href="#" onclick="inviaavantiv(); return false;"><img border="0"
src="Img/avantiveloce.gif" width="32" height="17" alt="Avanti veloce
(domanda senza risposta)"></a>
</center>
                    </td>
                </tr>
            </table>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="20%" cellspacing="0" cellpadding="3"
bordercolor="#000080" bgcolor="white">
                <tr>
                    <td width="25%" bgcolor="white" onclick="uscita()"
style="cursor:pointer" <p align="center" > <img border="0"
src="img/esci.gif" width="114" height="18" alt="esci e registra il test">
</td> </tr> </table> </center> </div> </body></td>
                </tr>
            </table>
        </center>
    </body>

</html>




In questo 2° caso, è Ok su Explorer/win, ma non credo che la stringa
Codice: Seleziona tutto
function uscitaimprovvisa()
    {
    py=event.clientY;
    if (py<0)
    {
    event.returnValue="ATTENZIONE! Chiudendo ....etc. ";

         }


funga su Netscape...???




In entrambi i casi, NON so come sostituire i gestori evento
"onbeforeunload, xonkeydown, xoncontextmenu" ...???





ciao, grazie

PS:
ripeto: non l'ho scritto io quel codice...l'ho trovato fatto e ne ho
constatato l'inompatibilità con Netscape e con i browsers/Mac.
Il mio intento è modificarlo per esntenderne la compatibilità (se poi lo
alleggerisco e rendo anche + elegante, tanto meglio!)

--> mi puoi indicare un editor/debugger Javascript (uno che tu ritieni
valido) che giri anche su Mac?
oppure potrei usare la consolle di NN 7/mac (mi pareva di averla usata una
volta, ma nella vers.4x...la si richiama digitando "javascript :" nella
barraURL ?)
[su Win uso solo Explorer.]

Phoenix non l'ho trovato (sia su tucows sia zdnet?)
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Prossimo

Torna a Discussioni


Topic correlati a "Questionario online: NON funzionante (?)":


Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti