window.showModalDialog()用法

2020-08-10 16:00:50 浏览数 (1)

1.定义

window.showModalDialog()用来创建模态对话框

语法为:vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures]);

参数:

(1)sURL :指定对话框要显示的文档的URL,字符串,必填

(2)vArguments:要向对话框传递的参数,变体(数组、变量等),选填

(3)sFeatures:生成对话框的外观信息,字符串,选填

参数

含义

说明

dialogHeight

对话框高度

不小于100px

dialogWidth

对话框宽度

dialogLeft

离屏幕左的距离

dialogTop

离屏幕上的距离

center

是否居中

默认yes(yes:1,no:0)

help

是否显示帮助按钮

默认yes

resizable

是否可被改变大小

默认no

status

是否显示状态栏

Modal默认no,Modeless默认yes

scroll

是否显示滚动条

默认为yes

注意:

window.showModalDialog()只能在IE浏览器中使用,如果是chrome或者火狐浏览器,可以使用window.open()方法,window.open()的具体用法参考https://www.cnblogs.com/wugongzi/p/13438578.html这篇博文。

区别:

window.showModalDialog()和window.open()都可以打开页面,两者之间有什么区别?

用window.showModalDialog()打开窗口,只有等打开的窗口关闭后,才会执行后面的js代码(同步);而window.open()打开窗口的同时就会继续往下执行代码(异步),所以如果你想等获取到子页面的值以后在去执行方法,建议使用showModalDialog()方法

2.用法

现在我们一起来看一下showModalDialog具体该如何使用

我们新建两个页面,放在同一个文件夹下面,名称分别为parent.html和child.html,分别代表父页面和子页面。在父页面中打开子页面窗口,并传递参数。子页面收到父页面传递过来的参数后进行输出,同时当子页面关闭时将返回值传递给父页面。父页面获取到返回值后进行输出。

parent.html

代码语言:javascript复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>父页面——showModalDialog用法</title>
</head>
<body>
    <div>
        <button onclick="showDialog()">打开新窗口</button>
    </div>
    <script>
        function showDialog() {
            var message = "我是父页面的数据123";
            var obj = window.showModalDialog("child.html", message, 'dialogWidth:300px;dialogHeight:380px;');
            alert("返回的数据" obj);
        }
    </script>
</body>
</html>

child.html

代码语言:javascript复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button onclick="getMessage()">获取父页面传递过来的数据</button>
    <script>
        function getMessage() {
            var message = window.dialogArguments;
            alert(message);
            window.returnValue="我是返回的数据abc";
        }
    </script>
</body>
</html>

0 人点赞