Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Non il solito problema parent/child

    Salve,

    ho provato da solo ma non sono riuscito, ho provato a cercare nei vecchi post, ma non ho trovato nulla che facesse riferimento al problema che mi si è posto davanti.

    Ho una struttra di finestre madre/figlia.

    La finestra madre, al click da parte dell'utente, invia una serie di comandi javascript alla finestra figlia (la prima volta che viene invato un comando la finestra figlia viene aperta e caricata, le successive il semplice comando viene invato alla finestra figlia che lo elabora senza problemi. Quindi fin qui funziona tutto come dovrebbe.

    Il problema nasce al momento in cui la pagina madre cambia (basta un semplice refresh della stessa pagina chiamante), e se effettuo un nuovo invio di comando javascript, la finestra figlia fa il refresh di se stessa e questo non vorrei che avvenisse.

    La finestra madre contiene il seguente cdice:
    Codice PHP:
    <script language="javascript">
                
    //questo codice server alla finestra madre per aprire
                //eventualmente la finestra figlia ed inviare i comandi alla finestra figlia

        
    var opWin;
        
        function 
    playTrack(codicemethodtype)
        {
            
    //define the new window position
            
    var finTop 150;
            var 
    finLeft 150;
            var 
    wid 655;
            var 
    hei 105;
            
            
    //is the child page already opened?
            
    if (opWin && !opWin.closed)
            {
                
    //yes, it is already opened
                
    opWin.focus();
                
                
    //send the command to the child window to queue the track
                
    opWin.getFlashMovie('mp3player').sendVarsToFlash(codicemethodtype);
            }
            else
            {    
                
    //no, it is not yet
                //send the command to the child window to queue the track
                
    opWin window.open('player_mp3.php?cod=' codice '&met=' method '&typ=' type"Player""width=" wid ", height=" hei ", left=" finLeft ", top=" finTop);
                
    opWin.focus();
                return 
    false;
            }
        }
    </script> 
    per lanciare il comando javascript utilizzando la funzine playTrack utilizzo semplicemente un'immagine così configurata:
    [img]image.gif[/img]

    La pagina figlia digerisce il codice senza problemi con una funzione interna, ma personalmente non credo che il problema sia nella pagina figlia, in quanto subisce passivamente il problema del refesh quando la pagina madre cambia.

    Potete aiutarmi?

    Grazie!! .

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ti faccio un esempio, vedi tu come adattarlo al tuo caso

    il concetto e' questo: la figlia deve avere un name e la principale deve fare comunque un window.open (omettendo l' url) verso la finestra con questo name per stabilire la relazione con la figlia
    se la finestra non esisteva prima (e hai vari modi per verificarlo, io qui la faccio un po' sporca e confido ciecamente nel fatto che se non e' stata aperta prima il suo indirizzo sara' about:blank) ne setto l' indirizzo

    principale.htm
    codice:
    function apriPopupPersistente(indirizzo){
    	var tuaPop=window.open('','popupPersistente','width=200,height=200');
    	if(tuaPop.location.href=='about:blank') {tuaPop.location.href=indirizzo;}
    	else {alert('aperta a quella pagina da prima');tuaPop.focus();}
    }
    ...
    apriPopupPersistente
    popupPersistente.htm
    codice:
    window.name="popupPersistente";
    window.onload=function(){alert('questo alert non scatta piu di una volta fino alla chiusura della popup, non importa chi tenti di dialogare con essa')}
    ciao

    P.s. lo spazio tra about e :blank viene introdotto dal forum

  3. #3
    Buongiorno,

    innanzitutto vorrei ringraziarti, ho elaborato a lungo il tuo consiglio e sono riuscito finalmente a risolvere il problema.

    C'è solo un unico piccolo neo... magari puoi aiutarmi.

    Gli script che ho impostato funzionano con tutti i browser ad eccezione di Opera (la versione che ho utilizzato per il test è la 9.64). In poche parole lo script apre una pagina vuota (in quanto lo script fa l'open di una finestra senza indirizzo come hai suggerito), ma purtroppo lì si ferma, mostrando una finestra figlia completamente bianca.

    Su IE6, IE7, IE8, Firefox, Safari e Chrome funziona correttamente, si apre la finestra ed effettua le operazioni come richiesto, anche quando cambio pagina.

    Grazie.

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    mi permetto di modificare il codice di Xinod

    invece di mettere

    var tuaPop=window.open('','popupPersistente','width=20 0,height=200');


    prova a mettere

    var tuaPop=window.open('about:blank','popupPersistente ','width=200,height=200');

    A quanto pare Opera è speciale
    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: senti, lascia perdere la mia nota. Provavo ma non dà risultato.
    Pietro

  6. #6
    Non preoccuparti, grazie lo stesso, ma come ho scritto nel mio precedente post sono riuscito a farlo funzionare come desideravo utilizzando il cdice suggerito da Xinod:

    window.open('','popupPersistente','width=200,heigh t=200');

    e ha funzionato.

    Per quanto riguarda Opera sono rimasto un po' stranito.. utilizzerò uno script ad-hoc, ma temo che non riuscirò a farlo funzionare senza che la pagina figlia non si ricarichi dopo il cambio pagina della pagna madre.

    Grazie comunque a tutti per il valid supporto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.