HTML父子页面通信问题(showModalDialog)

1. showModalDialog参数说明

window.showModalDialog(URL, ARGS,Features)(在父窗口中调用打开新的窗口)

 

URL          --  必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
ARGS      -- 可选参数,类型:变体。向窗口中传递参数。
在子窗口中使用window.dialogArguments来取得传递进来的参数。

Features    -- 可选参数,类型:字符串。设置打开窗口的外观属性(height,width等)

  

    Features详细属性说明:

   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。 

 

2 使用例子

parent.html中js

    var orderData={
        orderCommet:orderCommet,
        email:email,
        pnumber:pnumber,
        cellnumber:cellnumber,
        ddetail:ddetail,
        dCity:dCity,
        sCity:sCity,
        sdetail:sdetail,
        pname:pname,
        startDate:startDate,
        leavetime:leavetime,
        serviceType:serviceType,
        driverUsernumber:driverUsernumber,
    };
window.showModalDialog("orderInfo.html",orderData,"height=600,width=700");

子窗口orderInfo.html中使用

    var args = window.dialogArguments;
    $("#serviceType").html(args.serviceType);
    $("#driverNumber").html(args.driverUsernumber);
    $("#sCity").html(args.sCity);
    $("#sDetail").html(args.sdetail);
    $("#startDate").html(args.startDate);
    $("#leavetime").html(args.leavetime);
    $("#pname").html(args.pname);
    $("#dCity").html(args.dCity);
    $("#ddetail").html(args.ddetail);
    $("#pnumber").html(args.pnumber);
    $("#cellnumber").html(args.cellnumber);
    $("#email").html(args.email);
    $("#orderComment").html(args.orderCommet);

 

3.问题总结

 1)直接使用window.open能打开新的窗口,使用window.opener能够在子窗口中访问父窗口中内容

 2)使用showModalDialog按F5刷新不管用,需配合reload使用(onkeydown="if (event.keyCode==116){reload.click()} 给reload函   数中绑定页面,例如:<a id="reload" href="orderInfo.html" style="display:none">reload...</a>

 3)window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打   开的窗口的所有属性(区别于window.showModelessDialog)

 4) 被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。

 

 

 

 

posted @ 2014-04-14 11:01  wishyouhappy  阅读(1187)  评论(0编辑  收藏  举报