Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    riferimento alla finestra

    ciao a tutti. Non so se sia possibile quello che sto per chiedere.
    Io vorrei ottenere un riferimento a una window.
    In pratica ho una pagina con dei pulsanti in colonna.
    Questi pulsanti sono start e stop
    Ogni pulsante start mi apre una popup.
    Ogni pulsante stop dovrebbe chiudere la corrispondente popup.....come posso fare?

    Il mio codice e' messo in un modo un po particolare..... Ho il codice di apertua delle popup sulla pagina madre...perche la pagina che ha i pulsanti e' contenuta in un iframe...ed e' soggetta a cambiamenti ( praticamente in questo iframe appariranno varie pagine , ovviamente una alla volta....con le colonne di pulsanti.)

    Per unificare questa cosa dunque, ho messo il codice che apre la popup in un comune denominatore che e' la pagina che contiene l'iframe.


    So che e' un po contorto....ma me tocca......

    ciaooo e grazias

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    crea un array di riferimenti

    ad esempio
    codice:
    ...
    <input type="button" value="start" onclick="openpopup('5', 'pagina.html')" />
    <input type="button" value="stop"  onclick="closepopup('5')"  />
    
    <input type="button" value="start" onclick="openpopup('6', 'altrapagina.html')" />
    <input type="button" value="stop"  onclick="closepopup('6')"  />
    
    ...

    codice:
    <script type="text/javascript">
    var refpopup = new Array();
    for (i=0; i<100; i++) { refpopup[i] = null; }
    
    function openpopup(idpopup, page) {
       if  (refpopup[idpopup] != null) {
         refpopup[idpopup] = window.open(page, '', '');
       }
       else {
         ref = refpopup[idpopup];
         ref.focus();
       } 
    }
    
    function closepopup(idpopup) {
       if (refpopup[idpopup] != null) {
         ref = refpopup[idpopup];
         ref.close();
         refpopup[idpopup] = null;
       }
    }
    
    </script>

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    sai una cosa fcaldera.....sei proprio miticissimo!!!!!

    grazie mille...con il tuo aiuto ho risolto.

    ciaooooo

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    panico....sono inguaiato ancora....

    Avevo provato la tua tecnica dell'array e andava....andava ma solamente se utilizzo sempre la stessa pagina nell'iframe dei pulsanti. Quando ho un altra pagina perdo i riferienti alla window.

    Utilizzando tutto il codice che mi hai dato ...mi dice che ref e' nullo o non e' un oggetto.

    Non capisco delle cose cmq.... te mi fai fare for (i=0; i<100; i++) { refpopup[i] = null; }
    ....problema e' che io le mie popup le distinguo con un id complesso tipo questo
    ID_0000_3_0002
    ID_4020_3_0202
    ID_1030_5_0403

    Il problema piu grosso che ho quindi...e mi appello ai maestri di js.....e' riuscire a riferirmi sempre alla pop up che apro....

    Provo a riscrivere schematicamente la mia situazione :

    Pagina about2.php contiene un iframe

    in questo iframe vengono caricate(non interessa come), 3 pagine
    pagA.php
    pagB.php
    pagC.php


    Ognuna possiamo vederla come una pagina con colonne di pulsanti start e stop.
    Diciamo magari che pagA.php mi fa vedere TUTTI i pulsanti .....mentre pagB.php e pagC.php sono come filtri.....mostrano solo una porzione di TUTTI i pulsanti.

    Quindi diciamo che se apro una popUP nella pagA.php, dovrei riuscire a chiuderla anche dalla pagina pagC.php


    Il totale dei pulsanti e' variabie....cmq conosco ogni volta quanti sono...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    up

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    prova a modificare il codice così... dovrebbe riuscire a chiuderti le popup anche se cambi pagina

    codice:
    ...
    <input type="button" value="start" onclick="openpopup('5', 'pagina.html')" />
    <input type="button" value="stop"  onclick="closepopup('5')"  />
    
    <input type="button" value="start" onclick="openpopup('6', 'altrapagina.html')" />
    <input type="button" value="stop"  onclick="closepopup('6')"  />
    
    ...

    codice:
    <script type="text/javascript">
    var refpopup = new Array();
    
    function openpopup(idpopup, page) {
       if  (refpopup[idpopup] != null) {
         refpopup[idpopup] = window.open(page, idpopup, '');
       }
       else {
         ref = refpopup[idpopup];
         ref.focus();
       } 
    }
    
    function closepopup(idpopup) {
      try {
            ref = refpopup[idpopup];
            window.open('', idpopup, '').close();
            refpopup[idpopup] = null;
         } catch(e) {
             return;
         } 
    }
    
    </script>

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ovviamente il blocco script va messo in tutte le pagine in cui puoi aprire/chiudere le popup... non l'ho provato però.

    nota che in questo codice l'array non viene inizializzato
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    fcaldera....non so non capisco....non mi va.....
    mi dice sempre che ref e' nullo o non e' un oggetto.

    So che non vedi il mio codice....se lo posto e' abbastanza complicato.

    Cmq...la mia funzione open da quell'errore li....

    il codice lo ho solo sulla pagina madre....le pagine figlie ci accedono cosi parent.metodo(par)....in questo modo funziona, con l'array va....ma non con il tuo codice dove controlli se e' diverso da null

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    appena posso proverò a fare un esempio concreto...e comunque lo dovrai per forza adattare in base alla tua pagina e agli script che già hai.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    ok....io cmq lo ho adattato... ecco il mio codice...tralascia le cose che non servono
    Codice PHP:
    var finestraActive = new Array();

    function 
    popActiveX(srv_add,id_conn,id_sess,nameSession,ident,key)
        {        
            var 
    screendim popupCentrata(900,700);
            var 
    screendim['left'];
            var 
    screendim['top'];
            var 
    screendim['width'];
            var 
    screendim['height'];
            var 
    start key;
            var 
    stop key;
            var 
    totActiveX 1;
            if  (
    finestraActive[ident] != null) {
                 
    finestraActive[ident] =  window.open("popActiveMulti.php?srv_add="+srv_add+"&start="+start+"&stop="+stop+"&totActiveX="+totActiveX+"&id_conn="+id_conn+"&id_sess="+id_sess+"&nameSession="+nameSession+"",ident,"width="+w+",height="+h+",left="+l+",top="+t+",toolbar=no, location=no,status=no,menubar=no,scrollbars=yes,resizable=yes");
            }
            else {
                
    ref finestraActive[ident];
                
    ref.focus();
            } 
        } 

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 © 2024 vBulletin Solutions, Inc. All rights reserved.