Newsgroup: it.comp.lang.javascript
Titolo: Chiedo aiuto per location con Firefox

Ciao al gruppo,
il codice che segue dovrebbe, tra le altre cose, cambiare il contenuto
di un IFRAME nell'istruzione "progressFrame.location = prgssLocation;":
function swapDivs(prgssLocation)
{
	// hide upper form to display progress bar
	var tableDiv = document.getElementById('middleDiv');
    var tableDivImg = document.getElementById('progressDiv');
    var progressFrame = document.getElementById('progress_frame');
    if (tableDiv && tableDivImg && progressFrame)
	{
       	tableDivImg.style.display = "block";
       	tableDivImg.style.height = tableDiv.style.height;
       	progressFrame.location = prgssLocation;
       	tableDiv.style.display = "none";
	}
}
La funzione  da' l'effetto cercato in IE, ma in Firefox (1.5.0.1) no.
Ho provato a cambiare l'istruzione con
progressFrame.src = prgssLocation;
Pare che ora in Firefox funzioni, ma non sempre, solo se l'esecuzione
viene bloccata nel debugger e successivamente continuata.
Suggerimenti?
TREMALNAIK

        	progressFrame.location = prgssLocation;
2 cose:
a) location.href, non solo location
b) non so se questo crea problemi, ma location deriva da un oggetto window
(iframe, nel tuo caso). Usando getElementById anziché
window.frames['progressFrame'] non so se ottieni lo stesso effetto, dai il
name all'iframe e caricalo come oggetto window per vedere se funziona.
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

     var progressFrame = document.getElementById('progress_frame');
Ottieni un riferimento all'elemento (tag) IFRAME. Per ottenere invece un
riferimento alla finestra che contiene, dovresti fare:
document.getElementById("progress_frame").contentWindow
Quindi il tuo codice, diverrebbe:
document.getElementById("progress_frame").contentWindow.location.href=prgssLocation;
Alternativamente, puoi dare un name all'iframe e riferirti alla finestra
tramite la collection frames:
window.frames["nomeIFrame"].location.href=prgssLocation;
o anche:
window.nomeIFrame.location.href=prgssLocation;
-- 
- Ray è completamente partito Egon, di te che ne è restato?
- Mi dispiace Venkman,il terrore travalica la mia capacità di razionalizzare

 window.frames["nomeIFrame"].location.href=prgssLocation;
si' funziona, ma come prima non sempre firefox mostra la pagina
definita in prgssLocation. Solo quando interrrompo l'esecuzione con il
debugger e poi la continuo, senza fare null'altro. Il mio html segue:
<div id="progressDiv" class="collapsed" align="left">
	<iframe name="progress_frame" border
src="/cicciopasticcio/jsp/empty.jsp" width="100%" height="100%"
align="middle" frameborder="0"></iframe>
</div>
TREMALNAIK

 debugger e poi la continuo, senza fare null'altro.
Mai avuto problemi del genere (č altresě vero che uso poco spesso gli iframe,
e non ho debugger di mezzo).
Ma con il contentWindow ti funziona correttamente?
In aggiunta puoi anche provare:
	window.open(prgssLocation, "nomeIFrame");
-- 
- Se tu un Dio?
- N...no.
- E allora MUORI!
- Ray, se qualcuno ti chiede se sei un Dio, tu devi rispondere di sě!

 Ma con il contentWindow ti funziona correttamente?
mah, niente da fare. Che strano....
TREMALNAIK

 mah, niente da fare. Che strano....
Allora i casi sono tre: o il discriminante č la pagina che vai a caricare (o
cmq il tuo codice); o č il server a far casino; oppure č la tua installazione
di Firefox ad avere qualche problema.
Prova, in una pagina vuota, a fare qualcosa tipo:
<iframe id="ifrm" src="about:blank"></iframe>
<button
onclick="document.getElementById('ifrm').contentWindow.location.href='foo.htm'">click</button>
Ovviamente crea anche una pagina "foo.htm", con del semplice HTML.
Se il comportamento anomalo persiste con un codice del genere, allora la
problematica sta quasi certamente nella tua installazione di Firefox.
Puoi anche provare la stessa pagina in locale e sul server, e come ulteriore
prova fare una semplice jsp che scrive del codice html banalissimo.
-- 
- Lei ha precedenti di pazzia in famiglia?
- Mio nonno credeva d' essere San Giuseppe...
- Io ci metterei un bel SI!

 - Lei ha precedenti di pazzia in famiglia?
io potrei essere il primo.
comunque nulla da fare, ho utilizzato una semplicissima pagina html
invece di una jsp. IE visualizza, Firefox no.
Peccato, comunque tutto quello che deve fare e' mostrare una progress
bar. Per cui per ora gli utenti dovranno farne a meno.
grazie
TREMALNAIK

 invece di una jsp. IE visualizza, Firefox no.
Puoi pubblicare il codice su qualche server online? Cosě gli diamo
un'occhiata; giusto per avere la certezza che sia la tua installazione di
Firefox o il tuo server che crea qualche casotto.


 Firefox o il tuo server che crea qualche casotto.
purtroppo adesso non ho tempo, come ti dicevo si tratta di un task a
priorita' minore, per cui ho gia' iniziato ad occuparmi di altro.
ti ringrazio per il supporto, comunque, tanto piu' che prima o poi ci
ritornero' sopra e quindi mi rifaro' vivo su questo canale.
TREMALNAIK