js之弹出子窗口

关于弹出框,之前在项目中,一直想添加,奈何好多都忘了,今天重新学了一把,废话少说,直接上效果与源码分析

一、简单实现效果

建议大家不再在学习window.showModalDialog了,这个方法在2014年已经被谷歌等主流浏览器取消函数了

二、源码

首先我们有父窗口与子窗口,并且子窗口能将数据传送到父窗口中

父窗口源码

<script language="JavaScript">

    <script language="JavaScript">

    //弹出框

    function openWin() {

        window.open("jump.html", "_blank",'height=200,width=400,status=yes,top=200,left=400,toolbar=no,menubar=no,location=no')

    }

    function setValue(sid,sname) {

        document.getElementById("sid").value=sid;

        document.getElementById("sname").value=sname;

    }

</script>

<body>

    <form name="form1" action="test.html" method="post">

        学号: <input type="text" name="sid" value="" id="sid"><br>

        姓名:<input type="text" name="sname" value="" id="sname">

        <input type="button" name="ok" value="请选择学生" onclick="openWin();" />

    </form>

</body>

在此简单解释

 

        /*

          *  window.open( sURL , sName , sFeatures)

          *    * sURL:指定要被加载的HTML文档的URL地址。假如无指定值,则 about:blank 的新窗口会被显示

          *    * sName:指定打开的窗口的名字

          *       * _blank: 在新窗口中打开 sUrl 

          *       * _self:sUrl 在当前窗口中打开,覆盖当前文档

          *       * sFeatures:指定窗口装饰样式。使用下面的值。多个之间用逗号隔开.

                              */

其余的详细解释以及属性设置可以到w3c、菜鸟教程等网站去查询,这里不多做解释

子窗口

<script language="JavaScript">

    function viewData(sid, sname) {

       var student = window.opener;

       //方法一

//     student.document.getElementById("sid").value=sid;

//     student.document.getElementById("sname").value=sname;

       //方法二

       student.setValue(sid, sname);

       window.close();

    }

</script>

<body>

    <table border="1">

       <tr>

           <td>操作</td>

           <td>学号</td>

           <td>姓名</td>

       </tr>

 

       <tr>

           <td><input type="button" value="选择" id="ss" onclick="viewData('161530254','石腾飞')"></td>

           <td>161530254</td>

           <td>石腾飞</td>

       </tr>

       <tr>

           <td><input type="button" value="选择" onclick="viewData('161530000','超级用户')"></td>

           <td>161530000</td>

           <td>超级用户</td>

       </tr>

    </table>

</body>

在这里着重解释一下,关于获取父窗口的所有内容和对象,在子窗口使用;

var student = window.opener;

Window.opener:网上解释是:可返回对创建该窗口的 Window 对象的引用,即简单的来说就是Window.opener返回值是就是代表父窗口可以用如下方式给父窗口的id为sid的元素赋值

student.document.getElementById("sid").value=sid;

当然还有方法二:方法二比较好看,感觉牛逼,其实都一样

在父窗口里封装一个函数

function setValue(sid,sname) {

        document.getElementById("sid").value=sid;

        document.getElementById("sname").value=sname;

        }

在子窗口中调用

student.setValue(sid, sname);

千万要记得无论什么方法都要记得使用完毕,关闭子窗口

window.close();

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值