HTML, javascriptgiugno 30th, 2009dinox
I se sono relativi alla tipologia di interazione che volete avere con la finestra modale. Chiunque abbia mai avuto a che fare con i popup sa benissimo che essi possono portare qualche problema, tutto sommato risolvibile. Una cosa che risulta impossibile da fare, se non con qualche particolare accorgimento, è metterli in “primo piano” in modo da impedire all’utente di cliccare sulla pagina sottostante senza aver prima chiuso il browser. Lo stesso comportamento, insomma, di una finestra modale di Windows.
Quella delle finestre modali è una possibilità è utilizzabile, usando i browser di ultima generazione quali Firefox 3, Explorer 7 o 8, Safari 4 ma ci sono alcune controindicazioni. A tutti gli effetti con i browser “non Microsoft” tutto funzionerebbe in maniera regolare, come se si avesse a che fare con un normale popup ma messo in primo piano. Con IE, invece, se il popup contiene una form, una volta schiacciato il tasto “Invia” si aprirà una nuova finestra. Oppure se avete nel popup avete una funzione che richiama la pagina che lo ha aperto (parent) ad esempio per fare un refresh questa non funzionerà. Non so se ci sono altri problemi ma per me questi sono stati sufficienti a farmi abbandonare l’idea.
Se invece non avete problemi di gestione simili potreste utilizzare un codice simile al seguente. Nella parte <head> pagina dove dovete chiamare il popup:
function openModalWindows() {
if (window.showModalDialog) {
window.showModalDialog("popup.html","nome","dialogWidth:200px;dialogHeight:300px");
} else {
window.open("popup.html","nome","width=200,height=300,toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,modal=yes');
}
}
Il link presente nella sezione <body> dal quale volete chiamare la funzione per aprire il popup dovrebbe essere del tipo:
<a href="popup.html" target="nome" onclick="openModalWindows(); return false;">Apri popup modale</a>
HTML, javascript, modal window, popup