Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Finestra popUp che non si riapre

    Ciao.

    Avrei un problema con questa funzione javascript che apre da una pagina madre una pagina figlia in popUp:

    codice:
    // Variabile globale contenente l'istanza 'window' del popup corrente
    var popup = null;
     
    function Forum(fld, tbl, col, w, h)
    {
      var pw = Math.floor((screen.width - w) / 2);
      var ph = Math.floor((screen.height - h) / 2);
     
      // Crea il popup solo se non è già stato aperto
      if (!popup || popup.closed) popup = window.open("popUp.htm?f=" + fld + "&t=" + tbl + "&c=" + col, "scelte",
                                                      "width=" + w + ",height=" + h + ",top=" + ph + ",left=" + pw);
     
      // Attiva il popup (portalo in primo piano)
      if (popup) popup.focus();
    }
    Il problema è che se dalla pagina madre che contiene la funzione Forum, riprovo a selezionare lo stesso valore selezionato in precedenza la popup non si apre più, mi spiego meglio:

    supponiamo che dalla pagina madre seleziono valore TEST, si apre la popup, scelgo il valore XXX che riporto nella pagina madre e si chiude la popup;

    se riprovo dalla pagina madre a riselezionare TEST la popup non si apre più.

    perchè si comporta così?

    questo è il codice della pagina madre che apre la popUp :

    codice:
    <select size="1" name="tipo" onchange="Forum(this.options[this.selectedIndex].value, 'tbl', 'elm', 400, 200)">

  2. #2
    beh, ma perché l'onchange viene chiamato solo quando l'indice (o gli indici) dell'option selezionato cambia. Oltre che sull'onchange della select, mettici anche un pulsante <input type="button"> con su l'onclick una funzione che richiami Forum con i dati della select

  3. #3
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da artorius
    beh, ma perché l'onchange viene chiamato solo quando l'indice (o gli indici) dell'option selezionato cambia. Oltre che sull'onchange della select, mettici anche un pulsante <input type="button"> con su l'onclick una funzione che richiami Forum con i dati della select
    a parte che non ho capito il tuo suggerimento non posso aggiungere nessun pulsante al form.

  4. #4
    ma il JS lo puoi modificare?

  5. #5
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da artorius
    ma il JS lo puoi modificare?
    si il JS ( inteso come funzione ) lo posso modificare.

  6. #6
    mmm e puoi aggiungere anche funzionalità all'onLoad della pagina? Se si allora puoi semplicemente far inserire il bottone da JS quando la pagina ha caricato, poi crei la funzione che apre il Popup con i dati presi dal Select.

  7. #7
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da artorius
    mmm e puoi aggiungere anche funzionalità all'onLoad della pagina? Se si allora puoi semplicemente far inserire il bottone da JS quando la pagina ha caricato, poi crei la funzione che apre il Popup con i dati presi dal Select.
    è più buio di mezzanotte....

  8. #8
    allora, sai cosa è l'evento onLoad?

    Se non lo sai la vedo dura a fare tutto da JS senza modificare il codice HTML... ma perché non lo puoi modificare?

  9. #9
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da artorius
    allora, sai cosa è l'evento onLoad?

    Se non lo sai la vedo dura a fare tutto da JS senza modificare il codice HTML... ma perché non lo puoi modificare?
    Non sono esperto di javascript; pensavo che bastasse modificare la funzione Forum per fare in modo che si ri-aprisse la popUp anche selezionando l'ultimo valore scelto dalla select.
    Per me è un bel problema.

  10. #10
    è inutile modificare la funzione Forum, perché non verrò mai chiamata, mi spiego meglio:

    Gli eventi sono la base di JS, tutto quello che capita dopo che la pagina è caricata è regolato dagli eventi, dal click su di un bottone, alla selezione di una checkbox, dagli effetti visivi fino allo scroll della pagina, tutto è attivato da degli eventi.

    Guarda gli eventi come una sorta di interruttori che vengono accesi al sorgere di determinate condizioni: per esempio, il click del mouse attiva gli eventi onClick rispettivamente sull'elemento su cui si ha cliccato, sull'elemento contenitore, sul contenitore di questo altro e così via fino ad arrivare al Body, in tutti questi elementi l'interruttore onClick viene girato e, se c'è una funzione associata a questo interruttore, viene eseguita.

    Nel tuo caso hai un select con un evento onChange al quale viene associato una funzione (la tua Forum() ). Il problema non è nella funzione in sé, ma nella definizione dell'evento: nel tuo caso l'interruttore viene girato quando il valore selezionato nel select cambia, percui riaprire il menù a tendina e riselezionare lo stesso elemento non cambia il valore del select e non viene lanciato l'evento.

    Spero di essere stato chiaro.
    Quello che puoi fare è inserire il bottone come ti dicevo con una funzione apposta, è la cosa più semplice.

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.