32 messaggi dal 19 agosto 2008
Salve a tutti,

sto utilizzando delle librerie di jquery per quanto riguarda pageslide, diciamo una funzione carina che ti consente di avere delle slide che appaiono all'intrno delle pagine asp.

Il mio intento è di aprire una pagina slide che in pratica è un'altra pagina asp dove vorrei fare delle operazioni ad esempio inserendo o modificando dei dati in una form, successivamente al completamento di questa operazione vorrei aggiornare la pagina da dove ho aperto la slide....sapete darmi qualche indicazione??

L'ideale sarebbe che si chiudesse in automatico, ma sto provando anche manualmente e non funziona :(

manualmente ho provato cosi ma non fà niente :
<a href="javascript: window.location.href=index.asp">chiudi</a>

sto provando anche con window.opener ecc

mi sapete dire come posso aggiornare la pagina index.asp richiamando l'aggiornamento dettaglio.asp??
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, il plugin a cui fai riferimento è quello che si vede in questa demo?
http://derekperez.com/jquery-pageslide/demo/

Per chiudere la slide sembra che sia sufficiente inserire un link (o anche un bottone?) su cui sia presente l'attributo class="pageslide-close". Non serve altro. Immagino che il plugin, nel momento in cui apre la slide, vada a cercare nel contenuto l'eventuale presenza di elementi con class="pageslide-close" e, se li trova, si aggancia al loro evento click. Quando finalmente l'utente cliccherà, a quel punto verrà invocata la funzione javascript per la chiusura della slide.

Tieni presente però che questo plugin non causa cambi di pagina, né crea dei frame, infatti l'utente si trova sempre a navigare nella pagina contenitrice. Semplicemente, quando apri una slide, il plugin effettuerà una richiesta ajax per recuperare il contenuto da un'altra pagina e lo inietterà in un apposito contenitore della pagina contenitrice.

Questo è il motivo per cui le pagine di contenuto sono composte solo da frammenti di html, cioè non sono documenti completi perché il loro scopo non è quello di esistere autonomamente, ma di andare a far parte di un altro documento. Guarda il sorgente html di questa pagina, per esempio, non contiene né tag <html> né <body>.
http://derekperez.com/jquery-pageslide/demo/_left.html

Tutto questo è per dire che se vuoi aggiornare la pagina originale, puoi semplicemente mettere nel tuo form un <input type="submit" che causerà l'invio dei dati del post e il ricaricamento dell'intera pagina.

ciao,

Enjoy learning and just keep making
32 messaggi dal 19 agosto 2008
Intanto ti ringrazio per la risposta e l'attenta analisi....

Il mio intento era di aprire un'altra pagina, e nel momento in cui vado a richiamare l'attributo class="pageslide-close fa la ricerca nella nuova pagina e non nella pagina madre per questo motivo non mi funziona, non so se esiste un motivo per richiamre un evento da remoto su un'altra pagina.


Oppure l'alternativa valida sarebbe La possibilità di ricaricare la pagina explorer che in questo caso funziona perche mi aggiorna la pagina e mi chiude la slide, sai se esiste un metodo per richiamare F5 tipo il pulsante di explore per aggiornare la pagina?

Hio già provato con javascript e mi aggiorna solo la pagina della slide....
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, prego :)

xstian ha scritto:

Il mio intento era di aprire un'altra pagina

ok, puoi aprire un'altra pagina in due modi, io preferisco il secondo ma tu scegli pure quello che ti sembra più idoneo:
  • Usa la funzione javascript window.open. Essa apre una nuova finestra del browser e passando opportuni parametri potrai anche personalizzarne le dimensioni. Al cui interno verrà caricata l'altra pagina. Nei moderni browser, la finestra si apre con una propria barra del titolo e degli indirizzi che possono risultare "pesanti" alla vista, specie se la finestra deve contenere un piccolo form di dimensioni ridotte. window.open ti restituisce un riferimento alla nuova finestra che è stata aperta e potrai usare quel riferimento per interagire con la pagina. Qui trovi degli esempi. In particolare guarda l'esempio 2 che mostra come interagire con la nuova finestra.
    http://www.w3schools.com/jsref/met_win_open.asp
  • Oppure nella pagina madre usi un <iframe> che è un riquadro in grado di visualizzare un'altra pagina. Puoi far interagire le due pagine a patto che siano pubblicate nello stesso dominio. Ad esempio, se dalla pagina madre volessi raggiungere un elemento contenuto nell'iframe, potresti usare un codice javascript simile a questo:
    var elemento = document.getElementById("IDiframe").contentWindow.document.getElementById("IDelementocercato");
    
    Potresti far apparire un iframe nella tua pagina madre grazie a questo plugin di jQuery: Simple Modal. In particolare segui l'esempio chiamato "Display an external page using an iframe". Questo sistema mi sembra più gradevole rispetto all'aprire una nuova finestra con windows.open. E ovviamente la pagina contenuta nell'iframe può aggiornarsi indipendentemente dalla pagina madre.


xstian ha scritto:

sai se esiste un metodo per richiamare F5 tipo il pulsante di explore per aggiornare la pagina?


sì, puoi farlo con questa istruzione javascript:
window.location.reload();


ciao
Modificato da BrightSoul il 22 dicembre 2011 23.43 -

Enjoy learning and just keep making
32 messaggi dal 19 agosto 2008
Diciamo che l'alternativa ideale sarebbe la seconda opzione, però in questo modo dovrei escludere l'effetto slide?

E' stato mal interpretato il concetto di voglio aprire un'altra pagina...intendevo che invece di racchiudere una sezione di codice come nel link http://derekperez.com/jquery-pageslide/demo/_left.html io volevo proprio una pagina contanente i tag <html> <head> <body> etc...

in questa pagina faccio dei submit dovuti ai cambi di menu a tendina o addirittura continuo la navigazione visitando altra pagine piu in dettaglio, diciamo che non è un unico form ma segue un percorso di piu pagine e poi alla fine ho un pulsante CONFERMA che vorrei che chiudesse tutto in automatico. quindi se aggiorno(tasto f5 o javascript:window.location.reload()) la pagina do dove ho aperto la slide oppure ci clicco, la slide mi si chiude. se invece faccio l'aggiornarmento dentro la slide con javascript:window.location.reload() mi si aggiorna solo la slide e non tutto il CIBBORRIO!! se in entrambe le situazioni preme F5 si chiude tutto correttamente.Ce un modo per richiamare f5 dal browser?? oppure non so se esiste un modo per richiamare dalla pagina slide l'evento click sulla pagina madre...


penso in parte di essermi inpuntato sul funzionamento di questa slide o ti pretendere troppo, mi sa che mi tocca cercare un'altra alternativa
32 messaggi dal 19 agosto 2008
Mi potresti spiegare meglio questo codice:

var elemento = document.getElementById("IDiframe").contentWindow.document.getElementById("IDelementocercato");

in questo modo dici che posso raggiungere dalla pagina madare un elemento nell'iframe, ma se volessi raggiungere dalla pagina dell'iframe un elemento che sta sulla pagina madre?In questo modo riuscirei ad effettuare un reload sulla pagina madre e concluderei tutto in bellezza!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

xstian ha scritto:

Diciamo che l'alternativa ideale sarebbe la seconda opzione, però in questo modo dovrei escludere l'effetto slide?

No, non devi escluderlo, infatti puoi usare l'effetto slide in combinazione con l'iframe. Vedo che questo plugin, a meno che non lo si modifichi, non carica i contenuti all'interno di un iframe ma nulla ti vieta di inserire tu stesso un iframe dentro la pagina di contenuto.

Mi spiego meglio: nella pagina _left.html usata dall'esempio, cancella tutto quello che c'è dentro e incollaci esattamente questo codice, niente di più e niente di meno:

<iframe src="tuapaginaform.aspx"></iframe>

Così tuapaginaform.aspx si aprirà dentro un iframe e potrà aggiornarsi indipendentemente dalla pagina madre.

xstian ha scritto:

javascript:window.location.reload() mi si aggiorna solo la slide e non tutto il CIBBORRIO!!

eheh ^^ certo, se quel codice lo esegui da dentro un iframe, sarà solo la pagina contenuta lì ad aggiornarsi. Tuttavia, il codice per aggiornare la pagina madre non è molto diverso. Devi semplicemente invocare il location.reload sull'oggetto top:
top.location.reload();
window identifica il riquadro che contiene il documento corrente, mentre top identifica il riquadro "più esterno", cioè quello che contiene la tua pagina madre. Inoltre esiste anche parent, che identifica il contenitore immediatamente superiore a quello corrente. Nel tuo caso, usare parent o top è indifferente.

xstian ha scritto:

Mi potresti spiegare meglio questo codice:
var elemento = document.getElementById("IDiframe").contentWindow.document.getElementById("IDelementocercato");
Allora si parte da document, che è un riferimento al documento corrente. In esso si trova il metodo getElementById che ti restituisce la referenza ad un elemento (l'iframe, in questo caso) conoscendone l'id. Ora, l'iframe è un riquadro che è rappresentato dalla proprietà contentWindow e che all'interno ha un proprio document, esattamente come la pagina madre. A questo punto posso di nuovo usare getElementById per ottenere un riferimento ad uno degli elementi contenuti nell'iframe.

La porzione contentWindow.document poteva essere sostituita dalla "scorciatoia" contentDocument ma non è ben supportata da versioni precedenti di IE.

xstian ha scritto:

se volessi raggiungere dalla pagina dell'iframe un elemento che sta sulla pagina madre?

Ricorda che puoi usare le parole chiave top e parent. Quindi, ad esempio, volendo ottenere un elemento che si trova nella pagina madre farei:
var elemento = top.document.getElementById("idelemento");


Tieni presente che il dialogo tra pagina madre e iframe può avvenire solo se i due documenti sono pubblicati nello stesso dominio a causa delle restrizioni imposte dalla same origin policy.

ciao
Modificato da BrightSoul il 23 dicembre 2011 21.44 -

Enjoy learning and just keep making
32 messaggi dal 19 agosto 2008
Ma tu sei un genio!!!!

Grazie era proprio di questo che avevo bisogno!

ho fatto un response.redirect all'avenire di una determinata operazione ad una pagina asp, con al'interno del tag body onload="top.location.reload()"
in questo modo oltre a chiudere la Slide mi aggiorna l'elenco dei record lavorati sulla pagina principale....

GRAZIE GRAZIE GRAZIE

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.