Come nascondere il bottone di chiusura di un dialog jQuery UI
martedì 17 febbraio, 2009In attesa del rilascio ufficiale di jQuery UI 1.7 (eh già, il team di sviluppo di jQuery ha deciso che rilascerà la versione come 1.7, causa confusione), dove forse verrà inserita una opzione per eliminare il bottone di chiusura di un dialogo, ecco come risolvere velocemente il problema con l'attuale 1.6rc6:
-
// Agendo sull'evento open del dialogo
-
$('#mydialog').dialog( {
-
open: function () { $('.ui-dialog-titlebar-close').css('display','none'); }
-
});










19

Salve. Vorrei chiedere un aiuto.
Ho appena iniziato a studiare jquery.
Vorrei realizzare una piccola funzione, tipo quella usata nelle gallerie flash, per aprire una finestra dialog e oscurare il background. Il mio scopo è questo:
Ho un buttone (immagine) che permette di scaricare un pdf. Vorrei aprire un dialog che oscura il resto e avvisa di attendere mentre viene scaricato il pdf. Come posso fare????
Grazie per l'aiuto.
giuseppe
@giuseppe: nel caso specifico penso che non sia possibile fare esattamente quello che chiedi. Prima di tutto non stai "caricando" un pdf, come potrebbe essere nel caso di un'immagine, bensì lo fai scaricare agli utenti. Alcuni, infatti, potranno scegliere di salvarlo su disco altri, tuttavia, potrebbe scegliere di aprirlo, sostituiendo di fatto la tua pagina web con il contenuto pdf.
A parte questo, non avresti comunque modo di sapere quando il pdf è stato "scaricato" completamente! Quindi l'eventuale dialog rimarrebbe aperto per l'eternità.
Inoltre, durante il download di un file (come nel tuo caso), ci pensa il browser a mostrare l'avanzamente del download e un tuo eventuale messaggio sarebbe ridondante.
Fammi sapere se ho capito bene la questione e se hai altre domande.
Ciao e grazie d'avvero per super veloce risposta.
In effetti hai ragione, e forse non sono stato chiaro io ;-p.
Allora, il fatto è questo:
Io ho già realizzato tutta l'applicazione ,in java2ee ,jsp, e permette di scaricare il pdf premendo il pulzante. In effetti automaticamente consente all'utente di scegliere se aprire esternamente il pdf o salvarlo.
Fino qui tutto OK. Ora ho l'esigenza (tempo di attesa variabili e alcuni utenti ricliccano più volte nonostante l'avanzamento del download del browser) , di constringere l'utente ad attendere oscurando completamente lo sfondo, come ho visto permette dialog.
La mia necessità è questa: visualizzare il dialog e farlo chiudere quando appare la finestra (scegliere o salvare). Spero di averti aiutato e se sia possibile usare jquery (visto che lo sto studiando oggi) oppure fare in altro modo. Grazie d'avvero
Giuseppe
@giuseppe: ok, se vuoi possiamo suddividere il problema in due: aprire un dialog o oscurare lo sfondo, e intercettare lo scaricamento del pdf. Per il primo problema la soluzione è abbastanza semplice e, se vuoi, non richiede necessariamente jQuery. Per creare un effetto di oscuramento, si può usare una semplice tecnica, ovvero quella di inserire un
div(di dimensioni 100%) subito dopo il tagbody, inizialmente impostato invisibiledisplay:nonee in posizione assolutaposition:absolutecon ilbackgrounda qualsiasi colore tu voglia e renderlo visibile al momento opportuno. Impostandolo poi con un'alpha adeguato si crea l'effetto di oscuramento desiderato.Per quanto riguarda poi il problema dell'intercettare l'apertura del dialogo del browser credo, che per questioni di sicurezza, non sia proprio possibile farlo. Comunque è argomento interessante e prova a dare un'occhiata in giro se c'è qualche modo per capire se il dialogo sdi scaricamento "sta" per essere aperto...
Ciao. Grazie per il chiarimento. Sto testando la tua idea, che sembra funzionare. Volevo chiederti un'altra cosina: Si puo utilizzare onLoad() sullo stesso div? in pratica cosi quando viene richiamata(ricaricata)la pagina si chiude la finestra.O mi suggerisci altro. L'importante che avvenga automaticamente senza ricliccare.
.
Per quanto riguarda la parte la seconda parte, servlet ecc, per gestire l'intero processo ,dal momento di apertura della "pop-up" alla chiusura (quindi gestire l'intecettamento del download) credo di poterlo realizzare e sono a buon punto. Magari se finisco il tutto posso postarlo qui, magari potrà servire a qualcuno
Grazie