zoukankan      html  css  js  c++  java
  • js中使用弹出窗体

    在js中我们经常会用到弹出窗体的效果,普通的弹出窗体语法为:

    window.open("param1","param2","param3")

    param1: 要显示的网页地址

    param2:弹出窗体的句柄

    param3:弹出窗体的外观参数,具体如下:  

    • toolbar=yes,no 是否显示工具条
    • location=yes,no 是否显示网址栏
    • directories=yes,no 是否显示导航条
    • status=yes,no 是否显示状态条
    • menubar=yes,no 是否显示菜单
    • scrollbars=yes,no 是否显示滚动条
    • resizable=yes,no 是否可以改变公告窗口大小
    • copyhistory=yes,no 是否显示历史按钮
    • width=300 公告窗口的宽
    • height=200 公告窗口的高
    • left=100 公告窗口的左上顶点距屏幕左边100像素
    • top=100 公告窗口的左上顶点距屏幕顶端100像素

    这种窗口是不具有最上层焦点的,即可以在不关闭该窗体的情况下点击其他窗体。有时我们需要的是具有始终焦点的窗体,如果不关闭该窗体就无法点击其他窗体。这时就需要使用模式窗体,具体语法如下:

    window.showModalDialog("param1","param2","param3")

    使用注意:刚开始使用时,我一直没有成功,最后发现问题出在参数位置上,如果你只需1、3参数时,也要保证第二个参数为空,用逗号占位,如:window.showModalDialog("param1","","param3"),还有,param3中的个具体参数之间要用分号分开,否则只有第一个参数起作用,后边的全部忽略,这不是你想要的吧!

    param1:与前者一样,为要显示页面的地址

    param2:要传递给弹出窗体的参数,这也是与普通弹出窗体不同的部分

    param3:弹出窗体外观参数,具体如下:

    dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
    dialogWidth: 对话框宽度。
    dialogLeft: 距离桌面左的距离。
    dialogTop: 离桌面上的距离。
    center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
    help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
    resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
    status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
    scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。

    对于param2的使用,要注意,这里可以传递一个引用值、变量甚至是窗体(window)给弹出窗体。在与父窗体进行交互时,可以使用传递的参数作为媒介。如:

    var m = document.getElementById( " url " ).value;
    window.showModalDialog(
    " test.aspx " ,m, " dialogHeight=200;dialogWeight=300 " );

    在弹出的子窗体中可以用m来读取和设置父窗体中url控件的值。

    当传递参数为window时,就可以在子窗体中通过dialogArguments访问父窗体中的任何元素。如:

    dialogArguments.document.body.clientHieght;//取得父窗体的宽度
    dialogArguments.document.all.content.value;//父窗体中控件id为content的值
    window.dialogHeight;//弹出窗体的高度
    window.dialogWidth;//弹出窗体的宽度

    这样就有一个非常强大的好处,我们在弹出窗体中产生的结果,可以直接赋给父窗体中任何需要的地方。就不需要再考虑通过中间参数带回了。

  • 相关阅读:
    jQuery入门教程
    vue-lazyload 图片不更新
    Eggjs 设置跨域请求
    Vue.js错误: Maximum call stack size exceeded
    ubuntu nginx ssl 证书配置
    ubuntu 安装nginx, 出现 Unable to locate package
    nginx 判断移动端或者PC端 进入不同域名
    node.js 生成二维码
    Linux 配置ssh 免密码登录
    nodejs 从部署到域名访问
  • 原文地址:https://www.cnblogs.com/tristinjet/p/1602012.html
Copyright © 2011-2022 走看看