下面是一个简单示例
// src.html <script type="text/javascript"> window.showModalDialog("des.html"); </script>
// des.html <script type="text/javascript"> alert("this is des.html"); </script>
2. 为使打开的模态对话框的外观满足我们的要求,必须要设置对话框的样式。该方法的第三个参数可以用来设置我们需要的外观样式。
<script type="text/javascript"> window.showModalDialog("des.html", "", "dialogWidth: 600px; dialogHeight: 600px"); </script>
样式属性的设置是键值对的形式进行的,多个属性设置之间用分号“;”隔开。
可以设置的样式属性如下:
3. 但是最重要的在于如何向模态对话框中传递参数了,相信很多朋友都发现在上面的例子中showModalDialog方法的第二个参数为空字符串,其实我们就是通过它把信息传递到模态对话框中的。
// src.html <script type="text/javascript"> window.showModalDialog("des.html", "my name is tuozixuan", "dialogWidth: 600px; dialogHeight: 600px"); </script>
在模态对话框窗体中需要用到window对象的dialogArguments属性来获取传递过来的参数(中英文字符都可)。
// des.html <script type="text/javascript"> var msg = window.dialogArguments alert(msg); </script>
在向模态对话框传递参数时,不仅可以是字符串,还可以是Number、数组、对象等类型。
// src.html <script type="text/javascript"> window.showModalDialog("des.html", 1, "dialogWidth: 600px; dialogHeight: 600px"); </script> // des.html <script type="text/javascript"> var msg = window.dialogArguments alert(msg); </script>
// src.html <script type="text/javascript"> window.showModalDialog("des.html", [1,2,3], "dialogWidth: 600px; dialogHeight: 600px"); </script> // des.html <script type="text/javascript"> var msg = window.dialogArguments alert(msg[2]); </script>
// src.html <script type="text/javascript"> var obj = new Object(); obj.name = "tuozixuan"; obj.age = 1000; window.showModalDialog("des.html", obj, "dialogWidth: 600px; dialogHeight: 600px"); </script> // des.html <script type="text/javascript"> var msgObj = window.dialogArguments; alert(msgObj.name + " " + msgObj.age); </script>
4. 模态对话框向父窗口传递信息
如果需要把模态对话框中的数据传递给父窗口中,需要用到模态对话框中window对象的returnValue属性。当用户关闭模态对话框时,浏览器将会把returnValue属性的值返回给父窗口,若该属性未设置,则返回undefined。
// src.html <script type="text/javascript"> var obj = new Object(); obj.name = "tuozixuan"; obj.age = 1000; var resultData = window.showModalDialog("des.html", obj, "dialogWidth: 600px; dialogHeight: 600px"); alert(resultData); </script> // des.html <script type="text/javascript"> window.returnValue = "hello"; </script>
其中window对象的returnValue属性可以设置为数字、字符串、数字、对象等数据类型,情况和从父窗口向模态对话框中传递数据类似,在此不再赘述。
5. 模态对话框调用父窗口的js方法
可以把父窗口的window对象作为参数传递给模态对话框,模态对话框获取到参数对象的句柄后就可以调用父窗口的js方法了。
// src.html <script type="text/javascript"> window.showModalDialog("des.html", window, "dialogWidth: 600px; dialogHeight: 600px"); function showMsg() { alert("飞雪连天射白鹿,笑书神侠倚碧鸳"); } </script> // des.html <script type="text/javascript"> window.dialogArguments.showMsg(); </script>
尾言:由于个人水平有限,如发现任何错误之处,烦请指正,鄙人不胜感激!