Newsgroup: it.comp.lang.javascript
Titolo: refresh pagina

Salve,
qualcuno saprebbe dirmi come fare il refresh di una sezione di un frame ?
mi spiego meglio. All'interno di Frame2 vorrei chiamare una funzione che
mi rinfreschi il contenuto di Frame1 (dove Frame2 e Frame1 sono i nomi
delle due parti dell'intero Frame).
Ho provato con:
document.top.Frame1.location.reload();
e
document.parent.Frame1.location.reload();
Entrambe non funzionano... cosa sbaglio '
Grazie.
GS
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 document.top.Frame1.location.reload();
top è un oggetto window, non dipende da document (ma semmai il
contrario)...
top.frames["Frame1"].location.reload();
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.

Grazie,
scusa la mia totale incompetenza in JScript.
Mi stai dicendo che devo scrivere:
top.frames.location.reload()
oppure 
top.Frame1.location.reload() ???


 top.Frame1.location.reload() ???
no, ti sto dicendo di scrivere quello che ti ho scritto...
top.frames è una collection (quindi non funzionerà mai)
top.Frame1...dovrebbe funzionare (ma anche quello che ti ho scritto)
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

 top.Frame1...dovrebbe funzionare (ma anche quello che ti ho scritto)
Non funziona in entrambi i casi... 
Non so piu' cosa fare. 
Eppure dovrebbe essere una cosa banale per gli esperti di JScript
(linguaggio che io odio profondamente).
Grazie comunque.


 Eppure dovrebbe essere una cosa banale per gli esperti di JScript
JScript e Javascript sono due cose differenti:
Il primo, è la versione Microsoft del secondo.
-- 
~ "Io non vorrei subire un'ingiustizia nè commetterla, ma se
dovessi scegliere, preferirei subirla."
(Platone - "Gorgia")

Innanzitutto mi scuso se la mia poca dimestichezza con JScript puo' avere
generato un po' di confusione nelle mie richieste. 
Comunque riporto qui sotto il codice della pagina . I due frame si
chiamano "sommario" e "principale". In "principale" vengono caricate di
volta in volta pagine diverse e, da una di queste vorrei fare il refresh
del contenuto di "sommario".
Quando ho scritto che "il codice non funziona" intendo dire che,
eseguendolo attraverso Explorer non fa apparentemente nulla... Non ho
altri strumenti di debugging non avendo mai programmato in JavaScript.
Il codice della pagina dove vengono definiti i frame è il seguente:
-----
<html>
<head>
<title>PAGINA PRINCIPALE</title>
</head>
<frameset rows="163,*">
  <frame name="intestazione" scrolling="no" noresize target="intestazione"
src="indexFrame1.htm">
  <frameset cols="260,*">
    <frame name="sommario" noresize target="principale"
src="indexFrame2.php">
    <frame name="principale" noresize src="indexFrame3.php">
  </frameset>
  <noframes>
  <body>
  <p>La pagina corrente utilizza i frame. Questa caratteristica non è
  supportata dal browser in uso.</p>
  </body>
  </noframes>
</frameset>
</html>
-----


 eseguendolo attraverso Explorer non fa apparentemente nulla...
Apri IE, vai alla voce "Tools", e scegli "Internet Options", andando
poi alla tab "Advanced".
Nell'albero che ti verrà mostrato, sotto il ramo "Browsing" verifica
che sia spuntata la voce:
	"Display a notification about every script error"
O comunque il suo corrispettivo italiano.
In ogni caso ti consiglio di scaricarti Firefox dato che la gestione
degli errori che ha IE non è certo tra le migliori.
Con i frameset non lavoro più da una vita, ma se questa pagina non è
contenuta a sua volta in un frame, il codice è quello che ti è stato
già dato:
	top.frames["sommario"].location.reload();
con "top" ottieni il riferimento alla finestra principale, quella in
cui è stata caricata la pagina che hai pubblicato qui.
Chiedi quindi un riferimento al frame "figlio", con name "sommario",
e una volta ottenuto fai il reload della location.
Se vuoi fare una verifica, laddove invochi il reload, aggiungi:
	alert( top.frames.length ) // dovrebbe restituirti 3
	alert( top.frames["sommario"]) // dovrebbe darti [object]
	alert( top.frames["sommario"].location.href ) // l'URL di sommario
	top.frames["sommario"].location.reload();
Attenzione: se l'URL che vai a caricare in "principale" non fa parte
dello stesso dominio, ottieni un "Accesso Negato" per via della SOP,
ovvero Same Origin Policy.
-- 
~ L'intelligenza artificiale non può battere la stupidità naturale.
(Lemma di Sullivan)

Grazie mille, domani ci provo.
In ogni caso volevo dirti che sei stato gentilissimo.
Ciao.
GS
