Newsgroup: it.comp.lang.javascript
Titolo: Visualizzazione "document.location" in un frame

All'interno di una finestra che contiene due frame, vorrei creare un
campo testo (nel frame 1) in cui appaia l'URL completa del documento
caricato nel frame 2 (che ho chiamato "main"). Ho abbozzato un paio di
istruzioni che pero' stranamente mi funzionano solo in locale. Ovvero,
quando l'URL e' file:///etc... la cosa funziona, mentre se nel frame 2
(main) carico una pagina dal web, nel campo di testo mi compare "[object
Location]" .
Le istruzioni sono le seguenti:
<script language="JavaScript">
<!--
var urlID = null;
function showURL()
{
        if (parent.frames['main'].document.location !=
document.forms[1].elements[0].value)
                document.forms[1].elements[0].value=
parent.frames['main'].document.location;
urlID = setTimeout("showURL()",1000);
}
function changeURL()
{
        parent.frames[1].location=document.forms[1].elements[0].value;
        showURL();
}
// -->
</script>
Questo script si trova nel codice HTML relativo al frame 1
Sapreste darmi una mano?
Grazie 1000 in anticipo
Cordialita'
 --------------------
| Ivan Notaristefano |__________________________
|                                               |
|   - Home Page: -                              |
| 
http://www.freeweb.org/freeweb/Notaristefano/
 |
|                                               |
|   - E-mail Address: -                         |
| mailto:
iva...@mclink.it
                      |
 -----------------------------------------------

  [...]
Ti inserisco in questa mail 3 sorgenti di altrettanti file Html che ho
creato per mostrare alle persone che transitavano sulla strada di fronte
alla mia vetrina, alcuni siti ad intervalli di tempo regolari.
La pagina si compone di due frame orizzontali:
---[principale.htm]-----------
<FRAMESET ROWS="13%,87%">
<FRAME NAME="tempo" SRC="temporizzatore.htm">
<FRAME NAME="visita" SRC="">
</FRAMESET>
------------------------------
dove i file da caricare sono:
---[temporizzatore.htm]------
<HTML>
<HEAD>
<SCRIPT>
<!-- Hide from JavaScript-Impaired Browsers
/* Per caricare più o meno di 21 siti all'interno del frame, devi modificare
la variabile "number_of_sponsor" con il numero esatto di siti da
visualizzare */
number_of_sponsors=21;
var sctr=0;
var halt=0;
/* In fine, posiziona l'url relativo al sito*/
var durl=new Array();
durl[0]="
http://www.paginegialle.it
";
durl[1]="
http://www.altavalle.com
";
durl[2]="
http://www.nasa.gov
";
durl[3]="
http://www.intercam.it
";
durl[4]="
http://www.ferrari.it
";
durl[5]="
http://www.microsoft.com
";
durl[6]="
http://www.intercam.it/valcam/paesi/malonno/malonno.htm
";
durl[7]="
http://www.intercam.it/valcam/paesi/malonno/malon1.htm
";
durl[8]="
http://www.intercam.it/valcam/paesi/malonno/malon2.htm
";
durl[9]="
http://www.intercam.it/valcam/paesi/malonno/malon3.htm
";
durl[10]="
http://www.intercam.it/valcam/paesi/malonno/malon7.htm
";
durl[11]="
http://www.intercam.it/valcam/paesi/malonno/malon5.htm
";
durl[12]="
http://www.intercam.it/valcam/paesi/malonno/malon6.htm
";
durl[13]="
http://www.omnitel.it
";
durl[14]="y2000.htm";
durl[15]="
http://www.magia.net/users/reo/reo.htm
";
durl[16]="
http://www.fiat.com/i/default.htm
";
durl[17]="
http://www.aci.it
";
durl[18]="
http://www.deejay.it
";
durl[19]="
http://www.inter.it
";
durl[20]="
http://www.juventus.it
";
/* Questo script è settato per ruotare ogni 10 secondi (5000=5 sec così
30000=30, etc). E' possibile modificare il tempo cambiando il valore della
variabile "setTimeout"*/
function rotateIt(){
 if (halt!=1){
  sctr++;
  if (sctr>number_of_sponsors-1){
   sctr=0;
   }
// Carica la pagina del sito nel frame visita
  parent.visita.location=durl[sctr];
// inserisce nel campo text il valore di durl[sctr] che altri non è che
l'URL del sito stesso
  document.indirizzi.siti.value=durl[sctr];
  setTimeout("rotateIt()",20000);
  }
 }
// End Hiding -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR=CYAN TEXT=BLACK LINK=BLACK VLINK=BLACK ALINK=BLACK>
<FORM NAME="indirizzi">
<B>Cosa si può trovare in Internet ??? .... ecco alcuni esempi:</B><BR>
Indirizzo visualizzato: <INPUT TYPE=TEXT NAME="siti" VALUE="" SIZE=70
MAXLENGTH=100>
</FORM>
<SCRIPT>
<!-- Hidden for old browser
// non rimuovere questo script altrimenti quello precedente compirà un solo
"giro"
sctr=0;
rotateIt();
// End Hidding -->
</SCRIPT>
</BODY>
</HTML>
------------------------------
e nel frame sottostante (visita) non carico nulla anche perchè, dopo 10
secondi, il file temporizzatore.htm inizia a caricarmi le varie pagine dei
vari siti.
P.S. noterai che un'indirizzo da caricare è ="Y2000.htm" praticamente è una
pagina che avevo creato io (e memorizzata sul disco fisso) che informava del
tempo restante allo scoccare della mezzanotte del 31 dicembre 1999 ... non
credendola opportuna o necessaria per risolvere il tuo problema, non la
inserisco ... ma se la vuoi ... domanda e ti sarà dato.
Ciao
REO

Ti ringrazio molto per gli script ma purtroppo non facevano al caso mio.
Infatti quello che tu usi per il tuo scopo e' l'OGGETTO location che e'
una proprieta' dell'oggetto window (nel tuo caso riferito al frame
"visita"). Cio' che serve a me e' l'utilizzo della PROPRIETA' location
dell'oggetto document. Effettivamente potrebbero sembrare la stessa
cosa, ma in realta' non lo sono. Infatti document.location e' di sola
lettura (restituisce infatti l'URL completo del documento corrente,
mentre window.location o frames[n].location (nel tuo caso
visita.location) possono modificare le proprie proprieta' location.
Spero di non essere stato troppo confuso.
Rinnovo quindi la richiesta di aiuto.
Grazie 1000
Cordialita'
-- 
 --------------------
| Ivan Notaristefano |__________________________
|                                               |
|   - International Home Page: -                |
| 
http://www.geocities.com/SiliconValley/3189/
  |
|   - Italian Home Page: -                      |
