Heute will ich ein reines Internet-Explorer-Feature vorstellen, den ModalDialog oder ModlessDialog.
Mit diesen können Sie beliebige Werte von einer HTML-Seite zu einer anderen übergeben. Außerdem können Sie Parameter der Dialog-Seite wieder an die Main-Seite zurückgeben, ohne einen Reload der Seite durchführen zu müssen!
Was brauchen wir dafür?
HTML und ein bischen Javascript (und den Internet Explorer)
Was passiert?
Die Seite "main.htm" öffnet die Seite "dialog.htm" und übergibt Ihr Argumente(hier aus einer Textbox).
Die "dialog.htm" legt den Rückgabe-Wert fest: window.returnValue=... und schliesst das Fenster wieder: window.close
Der Code für die "main.htm"
<HTML> <HEAD> </HEAD> <BODY> <form name="frmMain"> <INPUT type="text" name="txtInput"><br> <TEXTAREA rows=2 cols=20 id=textarea1 name=textarea1 disabled> </TEXTAREA> <INPUT type="button" value="Insert" id="btnInsert" name="btnInsert" onclick="callDialog();"> </form> </BODY> </HTML> <SCRIPT LANGUAGE=javascript> <!-- function callDialog() { var sInput=document.frmMain.txtInput.value; varsetting='dialogHeight:=100px;dialogWidth:=150px;dialogTop:=300px;dialogLeft:=300px'; var rValue=showModalDialog('dialog.htm',sInput,setting); document.frmMain.textarea1.value=rValue; } //--> </SCRIPT>
|
Values aus der Form werden dem Dialog übergeben. Mit der Var "setting" werden Dialog-Eigenschaften gesetzt.
und hier die Dialog.htm:
<HTML> <HEAD> </HEAD> <BODY> Der Wert " <SCRIPT LANGUAGE=javascript> <!-- document.writeln(window.dialogArguments); //--> </SCRIPT> " wurde übergeben.. <form name="frmDialog"> <INPUT type="text" id="txtWert" name="txtWert"> <INPUT type="button" value="OK" id="btnOK" name="btnOK" onclick="OKclick();"> </form> </BODY> </HTML> <SCRIPT LANGUAGE=javascript> <!-- function OKclick() { window.returnValue=document.frmDialog.txtWert.value; window.close(); } //--> </SCRIPT> |
window.dialogArguments = die übergebenen Werte
window.returnValue = der Rückgabewert an die main-Site
Modal oder Modless?
Modal heisst gebunden. Also können Sie beim Öffnen eines modalen Dialog nicht zwischen beiden Seiten welchseln. Die Main-Site ist erst nach schliessen des Dialog wieder verfügbar.
Weitere Resourcen im Internet:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/showmodaldialog.asp