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

    Perdita Riferimento a popup

    Ciao a tutti, ho un problema con una funzione che mi controlla se una finestra popup e già aperta o no.
    In pratica io ho un form che mi deve aprire i risultati della ricerca in un popup, e fin qui tutto ok.
    Quando voglio fare il controllo se la finestra è già aperta, per evitare di aprire n finestre con i risultati, la finestra madre sembra perdere il riferimento alla figlia che ha aperto in precedenza.
    Posto il codice:
    codice:
    var pluto;
    function CheckForm(){
    	var ValoreRicerca
    	//ValoreRicerca = getRadioButtonSelectedValue(document.all.cerca);
    	if((getRadioButtonSelectedValue(document.all.cerca)) == 1){
    		PopolaPropValue(document.all.PropValue, document.all.SearchText.value);
    		document.all.SearchText.value = '';
    	}else{
    		PopolaPropValue(document.all.PropValue, '');
    	}
    	if (!(pluto && !pluto.closed)){
    	pluto = window.open('','ricerca','width=800 height=600 scrollbars=yes resizable=yes');
    	}
    	alert(pluto.name);
    	document.forms.SearchHeader.target = pluto.name;
    	document.forms.SearchHeader.submit();
    	return false;
    }
    quando faccio l'alert per visualizzare il nome della finestra pluto, mi dice 'SITE_BROWSER' e mi fa il submit nel form nella finestra principale.
    Qualcuno sa darmi un suggerimento su come risolvere il problema . Grazie Ciao
    ...NO ONE IS INNOCENT ANYMORE...

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se fai il submit nella stessa finestra ovviamente perdi tutte le variabili e i rferimenti della pagina precedente... dato che ne e' stata caricata una nuova.

    Inoltre tu usi document.all, che non e' supportato da tutti i browser...

    Potresti evitare di fare il controllo... tanto nella window.open hai valorizzato il nome della finestra da utilizzare, quindi se non esiste gia' la ricrea

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Non capisco, ma io dandogli il target 'ricerca' non eseguo il submit nella pop up? Allora come mai mi apre sempre nuove finestre? Non faccio nessuna ricerca all'interno della finestra madre, e non ricarico neanche la pagina.
    Al posto di document.all cosa mi suggerisci di utilizzare? In effetti non mi sono preoccupato molto della compatibilità tra browser diversi visto che si tratta di una intranet e l'azienda utilizza ie come browser.
    ...NO ONE IS INNOCENT ANYMORE...

  4. #4
    Ciao, dopo due giorni di prove non so proprio più come fare per risolvere sto problema. In pratica ho provato a creare una funzione che mi apre una finestra con un nome, e non ho problemi, come tento di effettuare il submit del form nella finestra che ho aperto mi perde il riferimento alla finestra. Com'è possibile? Se non faccio il submit è tutto ok!...
    ...NO ONE IS INNOCENT ANYMORE...

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non hai postato il form... che mi immagino si chiami SearchHeader

    La sintassi corretta e':

    document.forms["SearchHeader"].target

    e similmente per il submit.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Ho provato anche come mi ha detto te, ma apre tante finestre quante sono le volte che clicco sul pulsante ricerca, provo a postare il codice del form:
    codice:
    <form action="/wfprog/WebWork.exe" name="SearchHeader" method="post" ID="SearchHeader" style="margin:0px;padding:10px;">
    <input name="SearchText" id="SearchText" type="text" class="label">
    <input type="submit" class="button" onClick="return Veriform();" value="cerca" />
    </form>
    e la funzione veriform()
    codice:
    function Veriform(){
      window.open('','ricerca','width=800 height=600 scrollbars=yes resizable=yes');
      document.forms['SearchHeader'].target = 'ricerca';
      document.forms['SearchHeader'].submit();
      return false;
    }
    ...NO ONE IS INNOCENT ANYMORE...

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Correggiamo anche questa: i parametri nella window.open vanno separati da virgole e non spazi:

    window.open('','ricerca','width=800,height=600,scr ollbars=yes,resizable=yes');

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.