• jsp showModalDialog父子窗口传值


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML> 
    <HEAD> 
    <TITLE>New Document </TITLE> 
    <META content="EditPlus" name="Generator"> 
    <META content="" name="Author"> 
    <META content="" name="Keywords"> 
    <META content="" name="Description"> 
    <script language="javascript"> 
    <!-- 
    function openChild(){ 
    var aa = document.getElementById("txt9").value; 
    var k = window.showModalDialog("child.html",aa,"dialogWidth:335px;status:no;dialogHeight:300px"); 
    if(k != null) 
    document.getElementById("txt11").value = k; 

    //--> 
    </script> 
    </HEAD> 
    <BODY> 
    <FONT face="宋体"></FONT> 
    <br> 
    传递到父窗口的值:<input id="txt9" type="text" value="33333" name="txt9"><br> 
    返回的值:<input id="txt11" type="text" name="txt11"><br> 
    子窗口设置的值:<input id="txt10" type="text" name="txt10"><br> 
    <input id="Button1" onclick="openChild()" type="button" value="openChild" name="Button1"> 
    </BODY> 

    </HTML> 


    child.html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML> 
    <HEAD> 
    <TITLE>New Document </TITLE> 
    <META content="EditPlus" name="Generator"> 
    <META content="" name="Author"> 
    <META content="" name="Keywords"> 
    <META content="" name="Description"> 
    <meta http-equiv="Expires" content="0"> 
    <meta http-equiv="Cache-Control" content="no-cache"> 
    <meta http-equiv="Pragma" content="no-cache"> 
    </HEAD> 
    <BODY> 
    <FONT face="宋体"></FONT> 
    <br> 
    父窗口传递来的值:<input id="txt0" type="text" name="txt0"><br> 
    输入要设置父窗口的值:<input id="txt1" type="text" name="txt1"><input id="Button1" onclick="setFather()" type="button" value="设置父窗口的值" name="Button1"><br> 
    输入返回的值:<input id="txt2" type="text" name="txt2"><input id="Button2" onclick="retrunValue()" type="button" value="关闭切返回值" name="Button2"> 
    <input id="Button3" onclick="" type="button" value="关闭刷新父窗口" name="Button3"> 
    <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; 
    alert(s);
    window.returnValue=s; 
    window.close(); 

    //--> 
    </script> 
    </BODY> 
    </HTML> 


    说明 
    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> 


    a.htm

    <html>
    <script type="text/javascript">

    function openWin() 

    //var return_value_new = //window.showModalDialog("b.htm",[window],"toolbar:no;dialogWidth:500px;dialogHeight:400px;directories:no;status:no;scrollbars:yes;resize:no;menub//ar:no");
    var aa = window.showModalDialog('b.htm','userids','dialogWidth=500px;dialogHeight=400px;');
    document.getElementById("userids").value = aa; 
    alert(aa);
      
    }
    </script>
      <body>
          <input type="button" value="a" onclick="openWin()">
     <input type="text" id="userids" name="userids">
      </body>

    </html>


    b.htm


    <html>
    <script type="text/javascript">
    function closeWin() 

    window.returnValue = "1";
    window.close();
    }
    function returnValue(){
       var msg = window.dialogArguments;
       alert(msg);
       window.returnValue = "phone"; 
       window.close();
    }


    </script>
      <body>
          <input type="button" value="b" onclick="returnValue()">
      </body>


    </html>


    <!-- showModalDialog打开的窗口,子窗口可以通过window.dialogArguments来获取父窗口中的参数 -->
    <!--
    var time =new Date().getTime(); 
    //关于加上那个 (new Data()) 是要避免showModalDialog页面自动缓存的问题,导致第二次打开页面,数据没有被刷新,这是因为showModalDialog页面如果每次的URL一样的话,它会自动显示以前在缓存里面的数据。 

    var url = 'itsmOndutyPlanWork-selectUser.action?date='+time+'&onduty_plan_id='+ID; 
    window.showModalDialog(url, self , "dialogHeight:600px; dialogWidth:400px"); 


    说明: 
    由于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"> 


    -->

  • 相关阅读:
    [No0000188][VCB-Studio 科普教程 2.5] 基于 PotPlayer 和 madVR 的播放器教程(已更新 XySubFilter)
    [No0000184]JAVA语言学校的危险性
    [No0000185]Java技术板块图
    [No0000187]可能是把Java内存区域讲的最清楚的一篇文章
    [No0000183]Parallel Programming with .NET-How PLINQ processes an IEnumerable<T> on multiple cores
    [No0000182]Parallel Programming with .NET-Partitioning in PLINQ
    [No0000179]改善C#程序的建议2:C#中dynamic的正确用法
    [No0000178]改善C#程序的建议1:非用ICloneable不可的理由
    [No0000181]改善C#程序的建议9:使用Task代替ThreadPool和Thread
    [No000017E]改善C#程序的建议7:正确停止线程
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3131091.html
Copyright © 2020-2023  润新知