Newsgroup: it.comp.lang.javascript
Titolo: Termina il download, parte l'email

Salve a tutti.
Poniamo che metta un file a disposizione dell'utente:
<a href="file_1">download del file Uno</a>
esiste in js una funzione che esegua il submit a dowload terminato? Il
motivo l'avrete gia' chiaro: vorrei ricevere un'email che annunci il
download avvenuto. Il modulo e' dei piu' elementari:
<form name="form1" method="post" action="www./cgi">
<INPUT TYPE="hidden" NAME="mailto" VALUE="my@address">
<INPUT TYPE="hidden" NAME="subject" VALUE="DL file Uno">
Se la soluzione esiste -sempre che gradiate fornirmela- in seguito
estendero' i dettagli dell'idea (peraltro prevedibile); ma vorrei fare
un passo alla volta: non e' da escludere che dell'eventuale script
riesca a capire qualcosa :)
Many tnx
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 esiste in js una funzione che esegua il submit a dowload terminato? Il
 A mio parere dovrebbere essere possibile fare cio' che dici con il tag
 <OBJECT data="archivio.zip" type="application/x-zip-compressed"
 onload="document.form_1.submit();"></OBJECT> Ulteriori info in:
 
http://www.w3.org/pub/WWW/TR/WD-object.html
.
 per l'attributo classid non so cosa ci vada dentro.

 
http://www.w3.org/pub/WWW/TR/WD-object.html
.
che reindirizza qui:
http://www.w3.org/TR/html40/struct/objects.html
dove comunque si parla di <OBJECT>, ma si danno anche per acquisite
numerose nozioni che per il momento non ho. L'URL adesso e' nei
Preferiti; mi faccio un po' le ossa e torno a studiarci su ;)
... tuttavia, il tuo intervento mi ha ispirato quanto sotto:
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function InviaUno() {
    document.form1.submit();
}
</script>
</head>
<body>
<form name="form1" method="post" action="www./cgi">
<INPUT TYPE="hidden" NAME="Subject" VALUE="Download file UNO">
</form>
<a href="Archivio.zip"><img src="dl.gif"
// l'immagine e' un'esplicita indicazione di DL Archivio.zip
onload="InviaUno();"></a>
</body>
</html>
ma c'e' un inghippo: cosi' il form viene inviato subito, a pagina
aperta. Ne deduco che l'onload="InviaUno() guardi al caricamento
immagine (che in pratica e' istantaneo) e non all'<a
href="Archivio.zip">.  
Ho provato a invertire le parti:
<a href="Archivio.zip" 
onload="InviaUno();">
<img src="dl.gif"></a>
e - com'era prevedibile - dopo il clic su "dl.gif" il download
"Archivio.zip" viene effettuato, mentre il form non parte piu'. 
Se ritieni sia possibile, e hai un'idea per far si' che
l'onload="InviaUno() si occupi dell'<a href="Archivio.zip"> e non della
gif, siamo a cavallo. In caso contrario grazie comunque :)


 ma c'e' un inghippo: cosi' il form viene inviato subito, 
Son riuscito a cavarmela con mezzi assai rudimentali; in questo modo non
ho alcuna certezza che il file venga scaricato per intero ma, se non
altro, il form parte *dopo* l'inizio del download. Problema: l'invio
form viene ben gestito da IE, totalmente ignorato da NN. Avete idea del
perche'?
TIA
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function InviaUno() {
    document.form1.submit();
}
function InviaDue() {
    document.form2.submit();
}
</script>
</head>
<body>
<form name="form1" method="post" action="www.cgi">
<INPUT TYPE="hidden" NAME="Subject" VALUE="Download file UNO">
<a href="arch_1.zip"><img src="dl_1.gif"
onclick="setTimeout('InviaUno()',1000)"></a>
</form>
<p>
<form name="form2" method="post" action="www.cgi">
<INPUT TYPE="hidden" NAME="Subject" VALUE="Download file DUE">
<a href="arch_2.zip"><img src="dl_2.gif"
onclick="setTimeout('InviaDue()',1000)"></a>
</form>
</body>
</html>


 onclick="setTimeout('InviaDue()',1000)"></a>
  Metti l'evento onclick all'interno del tag <A href="" onclick=" ecc...
 e non all'interno di <IMG>

 e non all'interno di <IMG>
Anzitutto grazie per l'indicazione. 
Allora, mentre IE continua a svolgere il compito senza alcun intoppo, NN
sembra ugualmente ignorare l'evento. Ma devo dire che non ho avuto il
tempo di smanettare a sufficienza; nei prossimi giorni forse ne avro', e
non manchero' di tenerti informato.
Di nuovo :)


 wrote:
[cut]
Ho fatto numerosi tentativi, ma sono alla solita impasse. Per veder di
capirci qualcosa ho tolto di mezzo ogni fronzolo; ora e' un semplice
form abbinato a una funzione striminzita:
<SCRIPT LANGUAGE="JavaScript">
function Invia() {
    document.foo.submit();
}
</script>
</head>
<body>
<form name="foo" method="post" action="mailto:
my@address
">
<INPUT TYPE="text"> 
// vedi esperimenti sotto
</form>
1. <img src="clicca.gif" onclick="Invia()"></a>
2. <INPUT TYPE="button" value="invia modulo" onclick="Invia()"></a>
3. <a href="#" onclick="Invia()">invia modulo</a>
Variazioni sul tema: 
- onclick="Invia();"    (c'e' il ";")
- onclick="Invia()";
- onclick="javascript:Invia()"
- onclick="javascript:Invia();"
Ho provato anche a sostituire il doppio apice col singolo.
Eccoci al dunque.
Quanto sopra funziona benissimo con Explorer, il modulo viene *sempre*
inviato e giunge puntualmente a destinazione; al contrario Netscape non
da' segni di vita, in nessun caso, sembra che l'evento onClick gli sia
trasparente. Sospetto che IE tolleri un mio banale errore, mentre NN sia
molto meno permissivo. Riuscite a rilevare l'imprecisione?
TIA 


 cgi, ma un mailto.
Ho anche un cgi messomi a disposizione dall'host, e finche' all'interno
del form uso 
<input type="submit"> [o uno degli esempi che mi hai fornito] 
l'action puo' essere tanto ="
cgi.pl
" quanto ="mailto:"; in tal caso, sia
con IE sia con Netscape il modulo viene inviato. E' l'evento onClick (e
relativa function submit()) che appare estraneo al secondo.
Hai/avete trovato qualche lacuna nel codice del precedente post?


 ha scritto nel messaggio
news:1etml7s.1ljuozq3k127cN%marcoc...@tyn.it...

Per ragioni di sicurezza, NS non invia email da un form attivato con
submit(); l'onClick funziona correttamente, prova sostituendo l'action
con un URL.
"Submitting a form to a mailto: or news: URL requires the
UniversalSendMail privilege"
Devi utilizzare
<input type="submit"...
Saluti, Paolo

 con un URL.
Hai sciolto il nodo, thank you. Per dovere di cronaca e per agevolare
altri principianti espongo lo svolgersi dei fatti. 
Inizio con un semplice:
<form name="foo" method="post" action="mailto:
my@address
">
  <input type="submit" value="Invia">
</form>
Tanto Explorer quanto Netscape mi danno l'Ok (a quel punto stabilisco
che i due browser non si oppongono al "mailto:". Dunque, ingenuamente
ritengo di poter sperimentare la 
 function Invia() {
     document.foo.submit();
lasciando l'action="mailto:", tanto ormai "ho deciso" :) che fa lo
stesso.
Non sto neanche piu' ad occuparmi del cgi, rimango lato client e vado a
dritto convinto che l'errore se ne stia nascosto in una virgola di js.
Tutto il resto e' nel thread.
 
Di nuovo grazie, torno subito a complicarmi la vita cercando di ampliare
le mie fantastiche conoscenze :-)


 E perche'? Anzi, senza "javascript:" non dovrebbe andare.
Pardon, ho riprovato ora: "javascript:" e' necessario eccome. In altre
parole, m'era parso :)
Cmq tutto ok, vedi post a fianco. TY
Cata
