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

    Concatenare metodi usando "javascript:"

    Ciao,

    un'applicazione web fornisce un campo associato ad un link dove inserire del codice javascript nella forma:
    codice:
    javascript:window.open('http://...','_blank');void(0);window.location.reload();
    Questi metodi vengono chiamati correttamente. Tuttavia il refresh della pagina di partenza, tramite "window.location.reload()", avviene prima che alcuni dati vengano salvati sul DB dalla pagina aperta esternamente.

    Ho pensato quindi di ritardare il refresh della prima pagina usando:
    codice:
    setTimeout("window.location.reload()", 8000);
    Ora pero' quando il link viene cliccato, nella prima pagina appare il numero "3", tutto il contenuto sparisce (mentre la pagina esterna viene aperta correttamente), e nella barra degli indirizzi del browser viene settata la stringa con i metodi javascript:
    codice:
    javascript:window.open('http://...','_blank');void(0);setTimeout("window.location.reload()", 8000);
    Anche rimuovendo "void(0)" il risultato non cambia.

    Come posso eseguire un refresh con ritardo dopo aver aperto una pagina esterna? Considerando che tale codice javascript viene inserito nel codice asp.NET/C#, quindi dovendo mantenere questa notazione.

    Grazie mille!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Esegui il refresh dalla pagina inserimento tipo:
    <%codice aspx.......%>
    <script>
    parent.location.reload();
    </script>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    parent.location.reload();
    Questo codice lo posso invocare nella pagina aperta esternamente e applicando ilrefresh alla pagine di partenza tramite "parent"? Ma funziona anche se il link è "_blank"?

    Sarebbe perfetto, perché cosi' posso eseguire il refresh nel momento giusto.
    Ora provo.

    Grazie

  4. #4
    Ho inserito il codice nel codebehind della pagina aperta esternamente:
    codice:
                    
    if (!Page.ClientScript.IsClientScriptBlockRegistered("Refresh"))
    {
      Page.RegisterClientScriptBlock("Refresh", "parent.location.reload();");
    }
    Tuttavia non accade nulla e per la pagina padre non avviene il refresh...

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Non conosco il codice che hai scritto, comunque il javascript va inserito a fondo pagina prima della chiusura </html>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Il codice e' C# e permette di registrare uno script client side da codebehind.

    Ad ogni modo il problema e' che la pagina aperta esternamente contiene un iFrame, quindi penso che:
    codice:
    parent.location.reload()
    venga chiamato dall'iFrame nei confronti della pagina che lo contiene e non dalla pagina stessa nei confronti della pagina "padre".

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Prova cosi:
    opener.parent.location.reload()
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Originariamente inviato da cavicchiandrea
    Prova cosi:
    opener.parent.location.reload()
    Ho trovato la solutione con:
    codice:
    window.top.opener.location.reload()
    In questo modo "esco" dall' iFrame e posso eseguire parent.reload()

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.