Visualizzazione dei risultati da 1 a 8 su 8

Discussione: finestre modali ...

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    33

    finestre modali ...

    ... queste sconosciute !

    sto perdendo il sonno per un inconveniente: da una pagina asp apro una finestra modale in questo modo (il codice l'ho preso qui):

    codice:
    <SCRIPT type="text/javascript">
    var NN4=(document.layers)?1:0;
    var IE5=(document.all && document.getElementById)?1:0;
    var NN6=(document.getElementById && !document.all)?1:0;
    
    var datobox="";              
    
    function primopiano(){ 
    if(NN4 || NN6) 
    window.open("popup.html","popup","alwaysRaised=yes width=300 height=400") 
    if(IE5) 
    showModelessDialog("popup.html",window,"dialogWidth:300px;dialogHeight:300px");
    }
    
    function settastatus() {
    status = datobox
    }
    </SCRIPT>
    apri
    che apre questa finestra:

    codice:
    <script type="text/javascript">
    var NN4=(document.layers)?1:0;
    var IE5=(document.all && document.getElementById)?1:0;
    var NN6=(document.getElementById && !document.all)?1:0;
    
    function setta()
    {
     if(IE5) {
      var oggetto = dialogArguments;
      oggetto.datobox = "ciao";
      oggetto.settastatus();
      }
     if(NN4 || NN6)
      window.opener.status = "ciao";
    
    this.close()
    }
    
    </script>
    <form> 
    <input type="button" value="chiudi" onclick="setta();"> 
    </form>

    nella pagina di pop up vorrei mettere un link ad un'altra pagina che si dovrebbe caricare nella stessa finestra ma non ci riesco!
    (la pagina si apre ma in un'altra finestra)

    premesso che la mia "scarsezza" associata allo stato di pallone totale in cui mi trovo mi permettono di fare ben poco in questo momento, c'è nessuno che mi sa dire se e come è possibile farlo?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    guarda... un normalissimo link senza target dovrebbe andare... :master:

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    33
    ciao scusa il ritardo
    non funziona avevo già provato più o meno così:

    codice:
    vai
    ma proprio non va.
    ma a voi non è mai capitato prima ?

    ciao e grazie

  4. #4
    Utente di HTML.it L'avatar di macse
    Registrato dal
    Dec 2002
    Messaggi
    138
    succede anche a me.
    per esempio non da la possibilità di utilizzare nemmeno funzioni Java.
    ma mi apre direttamente una nuova finestra passanto come url tutto quello che trova nel tag Href.
    La stessa cosa che fa quando si prova ad aprire un link con codice java in impostando il "target=_blank".

    Come si supera il problema. O meglio chi sa darmi qualche spiegazione di cosa sono e servirebbero le finestre di Dialgo Modali e non?

    Macse

  5. #5
    Utente di HTML.it L'avatar di macse
    Registrato dal
    Dec 2002
    Messaggi
    138
    cia giusbox
    visto che nessuno ci prende in considerazione ho trovato come risolvere.

    inserisci questo nell'Head della pagina modale

    <Script>window.name = "mywindow";</script>

    ad ogni link (anche nel tag <form>) devi inserire target="mywindow"

    così facendo lui tiene il focus sulla modale aperta.

    Nota che ho utilizzato uno script che dovrebbe essere utilizzabile per tutti i browser.
    Non ho ancora provato ma dove lo ho preso dicono che funziona

    Basta che lo copi in un file nominato dialog.js
    codice:
    /*
        dialog.js
        ====================================
        Create and use a dialog window
        Cross browser version
        By Giuliano Cesar <giulianojordao@yahoo.com.br>
    */
    // Though "Dialog" looks like an object, it isn't really an object.  Instead
    // it's just namespace for protecting global symbols.
    
    function Dialog(url, action, init) {
         if (typeof init == "undefined") {
              init = window;     // pass this window object by default
         }
         if (document.all) {     // here we hope that Mozilla will never support document.all
              var value =
                   showModalDialog(url, init,
    //               window.open(url, '_blank',
                             "resizable: no; help: no; status: no; scroll: no");
              if (action) {
                   action(value);
              }
         } else {
              return Dialog._geckoOpenModal(url, action, init);
         }
    };
    
    Dialog._parentEvent = function(ev) {
         if (Dialog._modal && !Dialog._modal.closed) {
              Dialog._modal.focus();
              // we get here in Mozilla only, anyway, so we can safely use
              // the DOM version.
              ev.preventDefault();
              ev.stopPropagation();
         }
    };
    
    // should be a function, the return handler of the currently opened dialog.
    Dialog._return = null;
    
    // constant, the currently opened dialog
    Dialog._modal = null;
    
    // the dialog will read it's args from this variable
    Dialog._arguments = null;
    
    Dialog._geckoOpenModal = function(url, action, init) {
         var dlg = window.open(url, "ha_dialog","toolbar=no,menubar=no,personalbar=no," +
                                          "width=10,height=10,scrollbars=no,resizable=no," +
                                          "dependent=yes,z-lock=yes");
         Dialog._modal = dlg;
         Dialog._arguments = init;
    
         // capture some window's events
         function capwin(w) {
              w.addEventListener("click", Dialog._parentEvent, true);
              w.addEventListener("mousedown", Dialog._parentEvent, true);
              //w.addEventListener("focus", Dialog._parentEvent, true);
         };
         // release the captured events
         function relwin(w) {
              //w.removeEventListener("focus", Dialog._parentEvent, true);
              w.removeEventListener("mousedown", Dialog._parentEvent, true);
              w.removeEventListener("click", Dialog._parentEvent, true);
         };
         capwin(window);
         // capture other frames
         for (var i = 0; i < window.frames.length; capwin(window.frames[i++]));
         // make up a function to be called when the Dialog ends.
         Dialog._return = function (val) {
              if (val && action) {
                   action(val);
              }
              relwin(window);
              // capture other frames
              for (var i = 0; i < window.frames.length; relwin(window.frames[i++]));
              Dialog._modal = null;
         };
    };

  6. #6
    Utente di HTML.it L'avatar di macse
    Registrato dal
    Dec 2002
    Messaggi
    138
    per puntalizzare visto che non esiste più una opener per la modale
    per passare dati alla finestra "genitore" bisogna mettere il codice java nella finestra genitore e dare un nome window.name alla finestra genitore

    <script>window.name="opener"</script>

    e nel target dei link che devono passare il dato mettere target="opener"

    ed il gioco è fatto.

    Macse

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    33
    ciao Macse

    sto provando il codice che hai postato ma non capisco una cosa
    intanto funziona alla perfezione la prima cosa che hai scritto in questo modo:

    index.htm
    codice:
    stessa pagina del primo post
    popup.htm
    codice:
    <Script>window.name = "mywindow";</script> 
    apri
    quello che mi sfugge è il file dialog.js
    da quello che ho capito dovrebbe assicurare l'usabilità con tutti i browser ma non ancora capisco come va usato

    io lo richiamo così:
    codice:
    <script language="JavaScript" src="dialog.js"></script>
    ma non so dove...??? nella index o nella popup?
    e per genitore tu intendi il popup.htm dell'esempio?
    perchè se è così non riesco proprio a farlo funzionare

    intanto comunque ti ringrazio perchè mi hai svoltato una quantità di problemi

    ciao e grazie

  8. #8
    Utente di HTML.it L'avatar di macse
    Registrato dal
    Dec 2002
    Messaggi
    138
    quello che mi sfugge è il file dialog.js
    da quello che ho capito dovrebbe assicurare l'usabilità con tutti i browser ma non ancora capisco come va usato

    io lo richiamo così:
    codice:
    <script language="JavaScript" src="dialog.js"></script>
    ma non so dove...??? nella index o nella popup?
    e per genitore tu intendi il popup.htm dell'esempio?
    perchè se è così non riesco proprio a farlo funzionare
    il codice della dialog.js lo devi includere in tutte le pagine dove richiami la dialog( ....) quindi nella opener cioè quella dove c'è il comando di apertura della popup;

    io per genitore intendo la opener e per figlio la modale aperta.

    in teoria si, ti dovrebbe dare l'usabilità su tutti i browser ma non l'ho ancora testato personalmente.

    macse

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.