Newsgroup: it.comp.lang.javascript
Titolo: History.back e Window.open

Ciao,
	ho un problema che non per ora non sono riuscito a risolvedere
:(
Vi spiego:
ho una pagina contenente una form con una serie di campi. I dati
vengono processati ad una pagina successiva. In questa pagina che
viene richiamata c'č un bottone che fa l'history.back() richiamando la
pagina precedente (quella della form).
I valori inseriti precedentemente sono riportati correttamente, tutto
ok.
Nel caso in cui invece, dalla form di cui sopra apro una finestra di
popup (con una window.open) e successivamente, dopo aver inviato la
form, provo a cliccare sul tasto indietro la form si sbianca (tornano
i valori iniziali). Sapete dirmi come mai?
C'č un qualche modo per impedire che la window.open cancelli i dati
immessi nella form?
La finestra di pop up la apro cosě:
<a href="#"
onclick="javascript:window.open('finestra.asp','finestra','width=200,height=100,toolbar=no');"><img
src="immagine.gif"></a>
-- 
   Davide Lakester
   ICQ: 40766105
   Now Playing: Kingdom Hearts (PS2)
   Now Listening: Zwan - Mary Star of the Sea, Delta Activity - I'll Fated
   Last Movies: The Ring

 immessi nella form?
Semmai questo e' esattamente il modo corretto in cui dovrebbe funzionare la 
cosa.
Il fatto che ti ritrovi il form ricompilato al back e' solamente un "effetto 
collaterale" perche' il browser pesca la pagina precedente dalla sua 
history, ma una volta che il form è stato inviato, non dovrebbe esserlo di 
nuovo, dunque dovrebbe ripresentarsi bianco come di default.
Se hai provato vedrai che probabilmente un eventuale campo input type=file, 
pur se vedi il nome del file, al successivo submit (anzi ri-submit) non 
viene effettivamente inviato.
D'altronde l'utonto che si vede di nuovo il form riempito potrebbe anche 
decidere di rispedirlo... :-)
Vediamo che rispondono gli altri cmq, io a differenza di altri sono fuso a 
fine giornata... non al mattino :-))
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
Per rispondere: togli il PUNTO e metti un .

 src="immagine.gif"></a>
AAAAARGH!!! ^_^
Non capisco come mai molti si ostinano ad usare HREF="#" per chiamare un js
su di un link. Vi ricordo che č un ERRORE, quindi il comportamento del
browser č un po' imprevedibile.
Cambia cosě il codice:
<a
href="javascript:window.open('finestra.asp','finestra','width=200,height=100
,toolbar=no');"><img src="immagine.gif"></a>
Per quanto riguarda il problema invece, come dice Riccardo č il giusto
comportamento di un form. Perň puoi aggirarlo salvando tutte le variabili
del form nell'oggetto Session (visto che usi asp), in modo che non le perdi
navigando tra le pagine, e poi richiamarle ogni volta che si ricarica la
pagina (ma devi forzare il reload ogni volta).
Leo.

pagina (ma devi forzare il reload ogni volta).
SI sono costretto ad usare delle session ed eliminare l'history.back
sostittuendolo con il link della pagina (forzando quindi il reload).
Il problema è che tutto si incasina poichè devo utilizzare un altro
parametro che mi dice se i campi sono da caricare (dalla sessione)
oppure se sono quelli dell'inizio (i dati presenti nella form vengono
caricati da un DB) :(


decidere di rispedirlo... :-)
e se volesse modificarlo?


 ,toolbar=no');"><img src="immagine.gif"></a>
Aggiungo che href="#" viene usato proprio per evitare che venga 
scatenato un "link" ad una pagina o funzione javascript, in quanto 
tramite onclick si puo' bellamente evitare.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 browser è un po' imprevedibile.
Scusa perchè è un errore?
In più considerando l'utilità della cosa...
Infatti per chi non lo sapesse (e sto parlando a Lakester che lo fà e non sà
il perchè) ciò evita l'errore per quelli che come me aprono tutti i link in
una nuova pagina rivisualizzando la medesima.
Però interessante, perchè se mi dici che è un errore e prima o poi ci può
essere un browser che si può incazzare....
Ciao

Beh, mi ha risposto ZER0.
E quindi, caro Leo è proprio il contrario, l'errore e grave è fare come dici
tu!!!
E i motivi sono almeno 2:
Farebbe casino
-    se si cerca di aprire con una nuova finestra
-    se JS è disabilitato


E' proprio questo il problema, alcuni browser lo interpretano come un anchor
in cima, e vanno in cima sempre, anche dopo aver lanciato l'evento. Altri
browser si comportano bene e non fanno niente.
Poi dalla sintassi di un URI:
URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
Come vedi dopo il # non è facoltativo l'indicazione dell'anchor di arrivo
Leo.
PS: Comunque ammetto che pure io l'ho usato per anni prima di cambiare
stile. E che c'è anche una certa confusione nelle definizioni e nelle regole
di sintassi. Per questo preferisco mettere il link alla funzione nel JS,
oppure usare un'immagine con evento onClick, o qualunque altra cosa ma senza
href="#".
Poi se il JS è abilitato basta un controllo ASP e risolvo il problema. :)

 Poi se il JS è abilitato basta un controllo ASP e risolvo il problema. :)
Mhm.. IMVHO, peggio che mai :)


 Mhm.. IMVHO, peggio che mai :)
Mi sono espresso male: intendevo dire che da ASP posso fare un check se il
browser supporta javascript e presentare all'utente due versioni diverse del
sito. :)
Leo.

 sito. :)
Ripeto, peggio che mai :) (sempre IMVHO)
Prima di tutto, ASP si basa su JS per recuperare quel tipo di 
informazioni, seconda di poi, mai fare due versioni diverse del sito.. 



E qui scusami ma approfitto ancora della tua pazienza. :)
Il problema che ci angustia (risolto in maniera spartana mettendo la
funzione nell'href) è proprio questo: come si fa a bloccare la propagazione
dell'evento?
Grazie milel per i chiarimenti,
Leo.

 Grazie milel per i chiarimenti,
Figurati.
.. paghi in carta di credito, o rene? 8)


 e se volesse modificarlo?
Come ti hanno risposto giacche' usi le ASP riempilo comunque, anche alla 
prima apertura, in quel caso non ti scrive niente, altrimenti legge dalla 
sessione e lo riempie sicuramente.
A questo punto pero', se vuoi/devi comunque passare dal form, tanto vale 
richiamarlo esplicitamente con il link e sei sicuro che funzionera' tutto a 
dovere.


 caricati da un DB) :(
Beh, fossero questi i problemi :-)
un campo hidden e via


un campo hidden e via
Ho già risolto in un altro modo, ma sono curioso riguardo la tua
presunta soluzione.
-- 
   Davide Lakester
   ICQ: 40766105
   Now Playing: Kingdom Hearts (PS2)
   Now Listening: Zwan - Mary Star of the Sea, Dog Fashion Disco - Experiments in Alchemy
   Last Movies: The Ring

 presunta soluzione.
Metti un campo hidden nel form non collegato ad alcun campo del 
database.
Quando apri la pagina controlli se quell'hidden e' stato ricevuto, se è 
cosi' ri-riempi con i dati del form altrimenti procedi con quelli 
vergini del db.
Tutto qua :-)


Tutto qua :-)
Non risolve di certo il mio problema...
ma fa niente, oramai ho trovato un'altra soluzione
Grazie ^__^
-- 
   Davide Lakester
   ICQ: 40766105
   Now Playing: Kingdom Hearts (PS2)
   Now Listening: Zwan - Mary Star of the Sea, Dog Fashion Disco - The Embryo's in Bloom
   Last Movies: The Ring

 caricati da un DB) :(
Questa normalmente viene definita "cattiva progettazione".


 Grazie ^__^
Visto che la volta scorsa l'hai fatto, non mi tornare subito indietro ;P
Per l'ennesima volta:
"Quando si posta una domanda in un NG e la si risolve, per utilita' di 
coloro che troveranno questo thread nei vari archivi on-line e' sempre 
bene fornire la risoluzione ricavata".
Inoltre la soluzione potrebbe non essere effettivamente la migliore da 
adottare in quel contesto; o potrebbe invece essere un approccio del 
tutto nuovo.


Per l'ennesima volta:
MIiiiiiiiiiiiiiiiiiiiiiiiiiiiiii che palle :)
Cmq ho utilizzato delle variabili di sessione che valorizzavo al
salvataggio dei dati inviati via form.
Poi quando dovevo ricaricare la form controllavo se la sessione era
valorizzata. In caso affermativo ricaricavo i dati inviati altrimenti
caricavo i dati dal db.


 MIiiiiiiiiiiiiiiiiiiiiiiiiiiiiii che palle :)
A me, lo dici? :)
L'NG e' un gruppo di discussione. Non e' per gente che si mette a fare 
monologhi, ma serve appunto per veicolare informazioni, per scambiare 
conoscenze.
Inoltre, non si tratta solo di nettiquette, e' anche una certa forma di 
"rispetto" per coloro che dedicano del tempo a cercare di aiutarti. 
Un conto e' se posti un messaggio e immediatamente dopo ti rispondi da 
solo.. del tipo: "come non detto, ho risolto", anche se sempre per i 
motivi di archiviazione sui motori di ricerca, sarebbe bene specificare 
il come; ma un altro e' se poni una domanda, la gente spende un po' del 
proprio tempo per aiutarti, e poi li "liquidi" con un "non serve al caso 
mio ma ho risolto in altro modo. punto."
Se trovi "palloso" o ti sta a fatica questo iter, il mio consiglio e': 
Spendi un po' piu' di tempo nel cercare la soluzione autonomamente e 
nello studiare la reference del linguaggio e enviroment; prima di 
postare una richiesta. Visto che, guardando i tuoi post su questo NG, 
nel 99% dei casi giungi tu ad una tua conclusione che ti soddisfa, 
indipendentente da aiuti esterni.
In questo modo eviti "palle" varie fin dalla radice. :)


 scrisse:
<cut>
Ammazza quanto scrivi..
un riassuntino? ;)


 un riassuntino? ;)
Scrivo solo quando penso che ne valga la pena :)
Non farmi ricredere ;)
