JS Metoda showModalDialog

## Metoda showModalDialog - modální dialog (Explorer)

Zobrazit dialogové okno

### Co se má stát?

Kliknutím na odkaz se otevře nové okno, které blokuje do doby než je zavřeno.

### O dialogu

Modální dialogy fungují jenom v Exploreru. Zajimavostí je, že hlavní okno čeká na ukončení práce s dialogovým oknem (obdobně jako u alertu).

Základní konstrukce:

`navratova_hodnota = window.showModalDialog(adresa [, argumenty] [, parametry]`

- Adresa URL je pro html soubor s obsahem okna.
- Argumenty slouží pro předávání proměnných (čísla, řetězce, objekty, pole) do okna.
- Parametry pro nastavení dialogu
  Nejcennější parametry:
  - dialogHeight:100 - výška okna v px
  - dialogLeft:100 - pozice okna zleva v px
  - dialogTop:100 - pozice okna zprava v px
  - dialogWidth:100 - šířka okna v px
  - center:yes - vystředění okna { yes | no | 1 | 0 | on | off }
- Návratovou hodnotu je potřeba přiřadit do promenné window.returnValue dialogu.

  `<input type="button" value=" Zavřít okno " onclick="window.returnValue = 'ma hodnota'; window.close();">`

- Pracovat s argumenty v dialogu lze například takto:

  Soubor modaldialog.html

  `showModalDialog('modaldialog-vnitrek.htm','promenna1,promenna2,maFunkce','')`

  Soubor modaldialog-vnitrek.html

  `<script>`
  `argumenty = dialogArguments; // inicializace objektu`
  `argumenty.promenna1 = "hodnota proměnné promenna1"; // přiřazení hodnoty`
  `argumenty.promenna2 = "hodnota proměnné promenna2"; // to samé`
  `argumenty.maFunkce(); // spuštění funkce maFunkce() definované v hlavním okně`
  `<script>`

Diky Martinovi a MSDN knihovně jsem příklad upravil pro navrácení hodnoty.

### Nahrazení dialogu

Okno modalní dialog je možné nahradit pomocí window.open() . Parametry a práce je trochu odlišná. Pro napodobení blokace hlavního okna můzete použít fintu, kdy hlavní okno při zjištění otevřeného dialogu přeneseme do pozadí:

    	<head>
    	<script>
    	var meModalniOkno;
    	function zkontrolujFokus()
    	{
    	if (meModalniOkno!=null && !meModalniOkno.closed)
    		{
    		self.blur();
    		meModalniOkno.focus();
    		}
    	}
    	</script>
    	</head>
    	<body onfocus="zkontrolujFokus()">
    	<a href="javascript:meModalniOkno = window.open(adresa, jmeno, parametry)">
    	...
    	</body>