zoukankan      html  css  js  c++  java
  • showModalDialog/showModelessDialog实例,父窗口向子窗口传递值(转)

    下面是showModalDialog/showModelessDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口,希望对象我这样的WEB开发的菜鸟有所帮助.

    (一)showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.
     

    farther.html 
    --------------------------- 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML> 
    <HEAD> 
    <TITLE> New Document </TITLE> 
    <META NAME="Generator" CONTENT="EditPlus"> 
    <META NAME="Author" CONTENT=""> 
    <META NAME="Keywords" CONTENT=""> 
    <META NAME="Description" CONTENT=""> 
    <script language="javascript"> 
    <!-- 
    function openChild(){

    var k = window.showModalDialog("child.html",window,"dialogWidth:335px;status:no;dialogHeight:300px"); 
    if(k != null) 
    document.getElementById("txt11").value = k; 

    //--> 
    </script> 
    </HEAD>

    <BODY> 
    <br>传递到父窗口的值:<input id="txt9" type="text" value="3333333333333"><br> 
    返回的值:<input id="txt11" type="text"><br> 
    子窗口设置的值:<input id="txt10" type="text"><br>


    <input type ="button" value="openChild" onclick="openChild()"> 
    </BODY> 
    </HTML> 
    --------------------------------------------------------------- 
    child.html 
    -------- 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML> 
    <HEAD> 
    <TITLE> New Document </TITLE> 
    <META NAME="Generator" CONTENT="EditPlus"> 
    <META NAME="Author" CONTENT=""> 
    <META NAME="Keywords" CONTENT=""> 
    <META NAME="Description" CONTENT=""> 
    <meta http-equiv="Expires" CONTENT="0"> 
    <meta http-equiv="Cache-Control" CONTENT="no-cache"> 
    <meta http-equiv="Pragma" CONTENT="no-cache">

    </HEAD>

    <BODY> 
    <br>父窗口传递来的值:<input id="txt0" type="text"><br> 
    输入要设置父窗口的值:<input id="txt1" type="text"><input type ="button" value="设置父窗口的值" onclick="setFather()"><br> 
    输入返回的值:<input id="txt2" type="text"><input type ="button" value="关闭切返回值" onclick="retrunValue()"> 
    <input type ="button" value="关闭刷新父窗口" onclick="">

    </BODY> 
    </HTML>

    <script language=javascript> 
    <!-- 
    var k=window.dialogArguments; 
    //获得父窗口传递来的值 
    if(k!=null) 
     { 
     document.getElementById("txt0").value = k.document.getElementById("txt9").value; 
     } 
     //设置父窗口的值 
    function setFather() 

     k.document.getElementById("txt10").value = document.getElementById("txt1").value 

    //设置返回到父窗口的值 
    function retrunValue() 

    var s = document.getElementById("txt2").value; 
    window.returnValue=s; 
    window.close(); 

    //--> 
    </script> 

    ---------------------------- 
    说明: 
    由于showModalDialog缓存严重,下面是在子窗口取消客户端缓存的设置.也可以在服务器端取消缓存,参考: 
    http://adandelion.cnblogs.com/articles/252137.html 
    <meta http-equiv="Expires" CONTENT="0"> 
    <meta http-equiv="Cache-Control" CONTENT="no-cache"> 
    <meta http-equiv="Pragma" CONTENT="no-cache"> 
    ------------------------------------------------------------------------------------------------------------------------ 
    (二)下面是关闭刷新父窗口的例 

    farther.html 
    --------------------------- 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML> 
    <HEAD> 
    <TITLE> New Document </TITLE> 
    <META NAME="Generator" CONTENT="EditPlus"> 
    <META NAME="Author" CONTENT=""> 
    <META NAME="Keywords" CONTENT=""> 
    <META NAME="Description" CONTENT=""> 
    <script language="javascript"> 
    <!-- 
    function openChild() 
    {

     var k = window.showModalDialog("child.html",window,"dialogWidth:335px;status:no;dialogHeight:300px"); 
     if(k == 1)//判断是否刷新 
     { 
      alert('刷新'); 
      window.location.reload(); 
     } 

    //--> 
    </script> 
    </HEAD>

    <BODY> 
    <br>传递到父窗口的值:<input id="txt9" type="text" value="3333333333333"><br> 
    <input type ="button" value="openChild" onclick="openChild()"> 
    </BODY> 
    </HTML> 
    ---------------------------------------------------- 
    child.html 
    -------- 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML> 
    <HEAD> 
    <TITLE> New Document </TITLE> 
    <META NAME="Generator" CONTENT="EditPlus"> 
    <META NAME="Author" CONTENT=""> 
    <META NAME="Keywords" CONTENT=""> 
    <META NAME="Description" CONTENT=""> 
    <meta http-equiv="Expires" CONTENT="0"> 
    <meta http-equiv="Cache-Control" CONTENT="no-cache"> 
    <meta http-equiv="Pragma" CONTENT="no-cache">

    </HEAD>

    <BODY> 
    <br>父窗口传递来的值:<input id="txt0" type="text"><br>

    <input type ="button" value="关闭刷新父窗口" onclick="winClose(1)"> 
    <input type ="button" value="关闭不刷新父窗口" onclick="winClose(0)">

    </BODY> 
    </HTML>

    <script language=javascript> 
    <!-- 
    var k=window.dialogArguments; 
    //获得父窗口传递来的值 
    if(k!=null) 
     { 
     document.getElementById("txt0").value = k.document.getElementById("txt9").value; 
     }

    //关闭窗口返回是否刷新的参数. 
    function winClose(isRefrash) 
    {

    window.returnValue=isRefrash; 
    window.close(); 

    //--> 
    </script>

    -------------------------- 
    说明 
    1.下面是取消客户端缓存的: 
    <meta http-equiv="Expires" CONTENT="0"> 
    <meta http-equiv="Cache-Control" CONTENT="no-cache"> 
    <meta http-equiv="Pragma" CONTENT="no-cache"> 

    2.向父窗口传递阐述在ASP.NET中也可以是用aaa.aspx?id=1的方式传递. 

    3.不刷新父窗口的话在父窗口中直接这样一来设置可以. 
    <script> 
    window.showModalDialog("child.html",window,"dialogWidth:335px;status:no;dialogHeight:300px"); 
    </script> 
    4.在子窗口中若要提交页面的话要加入:,这样就不会打开新窗口了.
    <head>
    <base target="_self">
    </HEAD>

  • 相关阅读:
    python,生产环境安装
    neo4j 图数据库
    RNN系列
    机器学习关于AUC的理解整理
    fensorflow 安装报错 DEPENDENCY ERROR
    dubbo Failed to check the status of the service com.user.service.UserService. No provider available for the service
    使用hbase遇到的问题
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
    gradle 安装
    jenkins 安装遇到的坑
  • 原文地址:https://www.cnblogs.com/wangbin/p/1425536.html
Copyright © 2011-2022 走看看