Newsgroup: it.comp.lang.javascript
Titolo: proprietà src di un iframe

Mettiamo che ho un iframe con proprietà name="descrizione" e 
src="introduzione.html" all'interno di un documento.
Come faccio ad accedere alla proprietà src dell'iframe?
Io ho fatto così ma non funziona bene:
if (window.descrizione.src == introduzione.html) {
alert ("si");
} else {
alert("no");
}
La cosa strana è che fiunziona a metà, nel senso che se all'interno 
dell'iframe "descrizione" c'è introduzione.html l'alert mi dà sì come mi 
aspetterei, ma se cambio il nome del file e ad esempio lo scrivo leggermente 
diverso come se fosse un altro file mi dà errore.
Esempio:
if (window.descrizione.src == introduziooone.html) {
alert ("si");
} else {
alert("no");
}
Anziché darmi no mi dice che non è definito l'oggetto introduziooone... 
insomma, fa un po' di casino!!
ciao 

 if (window.descrizione.src == introduzione.html) {
le basi! le basi! :@
introduzione.html e' una stringa letterale
le stringhe letterali vanno racchiuse tra apici singoli o doppi
-- 
[No! Il mio amato villaggio! - Luoghi comuni negli RPG per console]
La citta', il paesino, la baraccopoli, il pianeta natale del protagonista
saranno solitamente distrutti in modo spettacolare prima della fine del
gioco, spesso prima ancora della fine della scena iniziale.

 le stringhe letterali vanno racchiuse tra apici singoli o doppi
Ok, avevo già provato in verità, ma non funziona neanche così:
if (window.descrizione.src == "descrizione.html") {
alert ("si");
} else {
alert("no");
}
Ho infatti provato a fare un semplice alert in questo modo:
alert(window.descrizione.src)
e mi da un "undefined" perciò non riesco a ricavare la stringa che tu mi 
dici... 

> Ok, avevo già provato in verità, ma non funziona neanche così:
[CUT]
Non funziona nel senso che mi dà sempre l'esito negativo...

 }
devi utilizzare la proprieta' location:
var iframeSrc = window.frames["descrizione"].location;
alert(iframeSrc);
-- 
[La geografia di George W. Bush - Luoghi comuni negli RPG per console]
Ogni paese del mondo avra' esattamente un solo villaggio, fatta eccezione
per il paese dal quale comincia il gioco, che ne possedera' tre.

Io farei così:
<html>
<head>
<script language="javascript">
function schiaccia()
{
	nomefile = window.descrizione.location.href;
	if (nomefile.lastIndexOf('/') != -1)
		nomefile = nomefile.substr(nomefile.lastIndexOf('/') + 1);
	if (nomefile == 'pippo.html')
		alert("si");
	else
		alert("no");
}
</script>
</head>
<body>
<iframe name="descrizione" src="pippo.html"></iframe>
<button onclick="schiaccia();">Premi</button>
</body>
</html>
Ciao
Lorenzo

 alert(iframeSrc);
Funziona!!
Adesso che posso conoscere i contenuti dell'iframe posso anche inserirvi 
pagine differenti, immagino con src stavolta!! 

 pagine differenti, immagino con src stavolta!!
nope! per gli oggetti finestra che caricano documenti (window, frame etc.)
devi settare la proprieta' location:
window.frames["descrizione"].location = "quello/che/vuoi";
// meglio:
window.frames["descrizione"].location.href = "quello/che/vuoi";
-- 
[Gli obbligatori - Luoghi comuni negli RPG per console]
C'e' sempre un dungeon di fuoco, un dungeon di ghiaccio, un labirinto
nelle fognature, una foresta brumosa, un vascello fantasma, una miniera,
un luccicante labirinto di cristallo, un antico tempio pieno di trappole,
un castello magico volante e un dungeon tecnologico.

Io farei cosě:

Sě, cosě forse funziona meglio, per il fatto che nell'altro modo avevo il 
nome del file accompagnato dall'intero percorso temporaneo (sto lavorando 
sotto dreamweaver), pertanto non mi convalidava correttamente l'uguaglianza, 
mentre con il tuo esempio lo fa correttamente.
Il problema č che adesso mi devo "studiare" come hai fatto, ci sono dei 
metodi che ancora non conosco, ma con libro alla mano...

 window.frames["descrizione"].location.href = "quello/che/vuoi";
Ok, allora più tardi lo provo, spero che un percorso relativo sia ben 
accetto:
esempio: nuovoContenuto.html
se nuovoContenuto.html si trova nella stessa directory della pagina che 
contiene l'iframe 

 contiene l'iframe
puoi impostare qualunque URL che metteresti in una proprieta' SRC HTML
inoltre studiati questi metodi:
stringa.indexOf(altraStringa)
stringa.substr(inizio, lunghezza)
stringa.substring(inizio, fine)
-- 
[A letto, a letto! - Luoghi comuni negli RPG per console]
Una buona notte di sonno curera' ogni ferita, malattia e invalidita',
incluso la morte in battaglia.

Io farei cosě:

Ok, sono riuscito a tradurre...
Si inizializza la variabile nomefile e si verifica se essa ha al suo interno 
una corrispondenza quale "/" partendo dall'ultimo carattere della stringa 
lastIndexOf. Se si trova una corrispondenza, ossia, se lastIndexOf('/') 
!= -1 allora si assegna a nomefile la sottostringa che parte dall'indice 
inziale (che corrisponde a nomefile.lastIndexOf('/') + 1) per la lunghezza 
di caratteri dell'intera stringa, dato che non č stato specificato il 
secondo parametro. A questo punto si puň tranquillamente procedere alla 
condizione di eguaglianza.
Vi ringrazio moltissimo, domani lo metto direttamente su campo ;-)
ciao