Modální dialog

metoda window.showModalDialog()

Zobrazit dialogové okno.

Modální dialogy ve většině prohlížečů nefungují (testováno zatím jen v IE 5). V praxi je tedy většinou třeba vymyslet nějakou alternativu, nejčastěji pomocí window.open().

Výhodnou (nebo alespoň zvláštností) dialogového okna je to, že hlavní okno čeká na ukončení práce s dialogovým oknem. To je také jediný zásadní rozdíl od metody window.open().

Na rozdíl od window.open() má showModalDialog() trochu jiné parametry. Jde o vlastnosti:
border, center, dialogHeight, dialogLeft, dialogTop, dialogWidth, font, font-faily, font-size, font-style, font-variant, font-weight, help, maximize, minimize. Ty poslední tři vlastnosti jsou pro tlačítka v modré liště. Centrování je vycentrování okna na stránce. Border (thin, thick) podle mě nefunguje. Vlastnosti dialogu se ale mohou nadefinovat až přímo v html kódu dialogu (ale může se to výše popsanými parametry nařídit už z té stránky, která dialog vyvolala.

Pokud nechcete tvořit pro každý dialog samostatný načítaný soubor, jako lokaci použijte pseudoprotokol about:. Text za about se zobrazí v okně.

Příklad: Dialog pomocí about:

Návod od Martina na vrácení proměnné:

Pokud chcete aby okno vracelo pouze jednu hodnotu tak uveďte do hlavní stránky:
<script>
hodnota = window.showModalDialog();
</script>
a v souboru pro dialog uveďte do záhlaví:
<script>
function vrat() {
window.returnValue = "návratová hodnota okna která se uloží v hlavní stránce do proměnné hodnota";
window.close(); }
</script>
pokud chcete víc parametrů uveďte:
function neco() { obsah funkce neco }
prom1 = null; prom2=null; prom3=null;
window.showModalDialog();
a do souboru který bude dialogem zapište:

<script>
function update() {
WCO = dialogArguments; // inicializace objektu
WCO.prom1 = "hodnota proměnné prom1"; // přiřazení hodnoty
WCO.prom2 = "hodnota prom2"; // to samé
WCO.prom3 = "hodnota prom3"; // to samé
WCO.neco(); // spuštění funkce neco() definované v hlavním okně
window.close(); } // zavření okna
</script> - samozřejmě že se do dá změnit - můžou se přiřazovat hodnoty proměnných v hlavním okně a funkcí v hlavním okně.Takto se dá využít při tvorbě WYSIWYG editoru na stránce.(přiřazování barev, znaků atd.)
Takto se dá z toho dialogu natáhnout hodnoty.