Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265

    Intercettare un evento di una popup

    Salve a tutti,

    Dovrei intercettare un'evento scatenato in una popup (la chiusura finestra) dalla pagina che richiama la popup.


    In dettaglio:
    Apro la popup col javascript (window.open)

    La popup salva in una variabile session un valore e si chiude

    La finestra che apre la popup si accorge che la popup si chiude e utilizza la variabile session.


    Non riesco a segnalare alla pagina che la popup si chiude.

    Una mano please.
    Fero
    Vuoi conoscere nuovi Amici?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    la pagina popup, quando viene chiusa, chiama un metodo della pagina chiamante. Un esempio:
    codice:
    function window_onunload() {if(opener != null) opener.esegui("Popup chiusa"); }
    nel chiamante deve essere presente il metodo esegui, per esempio
    codice:
    function esegui(v)
    {
    	alert(v);
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105

    scusa!

    però cosi facendo mi stampa la stringa "Popup chiusa".

    come faccio a far stampare il contenuto di una textbox??????


    io ho fatto così:
    nella parte HTML ho inserito questo SCRIPT:

    <script>
    function prova()
    {
    window.opener.document.forms[0].txtCodUbicazione.value = "textBox1.text" ;
    self.close()
    }
    </script>


    nel code behind ho inserito:
    Button1.Attributes.Add("onclick", "prova()")


    cosi facendo, quando premo il Button1, mi si chiude il POPUP e mi scrive la stringa "textBox1.text" nella txtTesto.

    come faccio a fargli scrivere il contenuto della text.

    spero di essere stato chiaro.
    GRAZIE.
    Vettorob

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: scusa!

    Originariamente inviato da vettorob
    però cosi facendo mi stampa la stringa "Popup chiusa".

    come faccio a far stampare il contenuto di una textbox??????


    io ho fatto così:
    nella parte HTML ho inserito questo SCRIPT:

    <script>
    function prova()
    {
    window.opener.document.forms[0].txtCodUbicazione.value = "textBox1.text" ;
    self.close()
    }
    </script>


    nel code behind ho inserito:
    Button1.Attributes.Add("onclick", "prova()")


    cosi facendo, quando premo il Button1, mi si chiude il POPUP e mi scrive la stringa "textBox1.text" nella txtTesto.

    come faccio a fargli scrivere il contenuto della text.

    spero di essere stato chiaro.
    GRAZIE.
    Veramente non ho capito niente. Io ho risposto a fero alla precisa domanda:
    Non riesco a segnalare alla pagina che la popup si chiude, al quale ho risposto che, nell'evento onunload del popup si dovesse richiamare una funzione client del chiamante. E gli ho fatto un esempio. Ma era un semplice esempio di una funzione che accetta un parametro e lo stampa a video. Ma è chiaro che la funzione può fare qualunque cosa, e che può ricevere un numero qualsiasi di parametri dal popup.

    Ma scusa, cosa centra il Code Behid?; e cosa centra il Button.Attributes.Add(... scritto nel codice server?

    Un'ultima cosa: il codice che hai scritto tu, la funzione prova(), per essere esatti, funziona benissimo. Però mi accorsi, qualche tempo fa, che in alcune circostanze non funzionava. Ossia, come te, valorizzavo una proprietà di un controllo del chiamante scrivendo il codice in una funzione del popup. Quando mi accorsi che alcune volte non funzionava, ho risolto richiamando una funzione scritta però nel chiamante.
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105

    lo so!è un casino.

    nel popup esiste una textbox ed un button.


    Nel page_load del Popup:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Button1.Attributes.Add("onclick", "window.opener.document.forms[0].txtCodUbicazione.value = 'ciao'")

    end sub

    utilizzando il caso sopra descritto, alla pressione del Button1, vado a scrivere la stringa 'ciao' all'interno della textbox nel
    form[0], che è quello che ha aperto il popup!!!


    quello che vorrei fare, ma che non riesco, è passare il valore della textbox presente nel popup:

    Button1.Attributes.Add("onclick", "window.opener.document.forms[0].txtCodUbicazione.value = '" & TextBox1.Text & "'")

    cosi però NON FUNZIONA. ---->


    grazie.
    Vettorob

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: lo so!è un casino.

    Originariamente inviato da vettorob
    nel popup esiste una textbox ed un button.


    Nel page_load del Popup:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Button1.Attributes.Add("onclick", "window.opener.document.forms[0].txtCodUbicazione.value = 'ciao'")

    end sub

    utilizzando il caso sopra descritto, alla pressione del Button1, vado a scrivere la stringa 'ciao' all'interno della textbox nel
    form[0], che è quello che ha aperto il popup!!!


    quello che vorrei fare, ma che non riesco, è passare il valore della textbox presente nel popup:

    Button1.Attributes.Add("onclick", "window.opener.document.forms[0].txtCodUbicazione.value = '" & TextBox1.Text & "'")

    cosi però NON FUNZIONA. ---->


    grazie.

    il codice lo hai scritto tu stesso!
    codice:
    window.opener.document.forms[0].txtCodUbicazione.value = document.forms[0].TextBox1.value

  7. #7
    non so se ho capito.. prova così:
    <body>
    <form runat="server">
    qui sotto il tuo bottone di apertura pop_up:
    <a href="javascript:;" onClick="window.open('tuo_percorso?textbox=nome_te xtbox(dove vuoi che venga scritto il tuo valore prelevato dalla pop_up)','','scrollbars=no,width=100,height=100,
    status=no,location=no,toolbar=no')">
    <asp:image>(o input o quello che vuoi)</a>
    poi inserisci la tua textbox
    <asp:textbox ID="nome_textbox" runat="server" />

    e nella pagina che fa da pop_up:
    Sub Page_Load(s as Object, e as EventArgs)
    if Not Page.IsPostBack Then
    tuovalore.Value = Request.QueryString("nome_textbox").ToString()

    e nel bottone che chiude la pop_up:
    Sub Button_click (sender As Object, e As ImageClickEventArgs)
    dim script as string = "<script>window.opener.document.forms[0]." + tuovalore.Value + ".value = '"
    script += nometextboxdellapopup.text
    script += "';self.close()"
    script += "</" + "script>"
    RegisterClientScriptBlock("test",script)
    <body>
    <form runat="server">
    <input name="hidden" type="hidden" id="tuovalore" runat="server" />

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    105

    ...

    grazie pietro09!!!

    stavo cosi impazzendo che anche se avevo la soluzione sotto gli occhi, non la vedevo!!!


    grazie anche a te, SUSIN!

    :mavieni: :mavieni:
    Vettorob

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.