posts - 104,  comments - 34,  trackbacks - 0

          下面是showModalDialog/showModelessDialog使用例子,父窗口向子窗口傳遞值,子窗口設置父窗口的值,子窗口關閉的時候返回值到父窗口.關閉刷新父窗口,希望對象大家有所幫助.

          (一)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">
          也可以在服務器端取消緩存,參考:
          http://adandelion.cnblogs.com/articles/252137.html

          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>

          本文參考了:http://dev.csdn.net/develop/article/15/15113.shtm ,里面有showModalDialog/showModelessDialog的詳細使用說明
          http://www.cnblogs.com/adandelion/archive/2005/10/26/262666.html

          <HTML><BODY>  
            <input   type="text"   id="txt"   size=20>  
            <input   type="text"   id="txt1"   size=20>  
            <button   onclick="echo()">input</button>  
            <script>  
            function   echo()   {  
            x   =   showModalDialog("testnew.html",new   Array(txt.value,   txt1.value));  
            txt.value   =   x[0];//.txt1;  
            txt1.value   =   x[1];//.txt2;  
            }  
            </script>  
            </BODY></HTML>  
             
             
             
            testnew.html  
            <HTML><BODY>  
            <input   type="text"   name="dlgtxt">  
            <input   type="text"   name="dlgtxt1">  
            <button   onclick="doSomething()">do   somthing</button>  
            <script>  
              dlgtxt.value   =   window.dialogArguments[0];  
              dlgtxt1.value   =   window.dialogArguments[1];  
             
            function   doSomething(){  
                var   m_data   =   new   Object;  
                m_data.txt1   =   dlgtxt.value;  
                m_data.txt2   =   dlgtxt1.value;  
                window.returnValue   =   [dlgtxt.value,   dlgtxt1.value];    
                close();  
            }  
            </script>  
            </BODY></HTML>  

          posted on 2007-11-23 22:14 末日風情 閱讀(4378) 評論(3)  編輯  收藏 所屬分類: HTML/XMLjavascript

          FeedBack:
          # windows.open()參數列表
          2007-12-14 12:05 | 末日風情
          <SCRIPT LANGUAGE="javascript">
            <!--
            window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //這句要寫成一行
            -->
            </SCRIPT>
            
            參數解釋:
            
            <SCRIPT LANGUAGE="javascript"> js腳本開始;
            window.open 彈出新窗口的命令;
            'page.html' 彈出窗口的文件名;
            'newwindow' 彈出窗口的名字(不是文件名),非必須,可用空''代替;
            height=100 窗口高度;
            width=400 窗口寬度;
            top=0 窗口距離屏幕上方的象素值;
            left=0 窗口距離屏幕左側的象素值;
            toolbar=no 是否顯示工具欄,yes為顯示;
            menubar,scrollbars 表示菜單欄和滾動欄。
            resizable=no 是否允許改變窗口大小,yes為允許;
            location=no 是否顯示地址欄,yes為允許;
            status=no 是否顯示狀態欄內的信息(通常是文件已經打開),yes為允許;
            </SCRIPT> js腳本結束
            回復  更多評論
            
          # re: showModalDialog/showModelessDialog實例,父窗口向子窗口傳遞值,子窗口設置父窗口的值
          2009-12-03 15:09 | 飛熊
          好東西啊,謝謝了,哥們!  回復  更多評論
            
          # re: showModalDialog/showModelessDialog實例,父窗口向子窗口傳遞值,子窗口設置父窗口的值
          2010-01-14 13:10 | jask
          @飛熊
          Very good!  回復  更多評論
            
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 侯马市| 隆回县| 邮箱| 历史| 翁源县| 宕昌县| 南部县| 株洲市| 邻水| 芜湖县| 抚顺市| 专栏| 德钦县| 明光市| 太白县| 庆安县| 临夏市| 泉州市| 册亨县| 临海市| 民乐县| 仪征市| 莱芜市| 札达县| 洛浦县| 兴和县| 漳平市| 固始县| 铅山县| 张家界市| 咸阳市| 定日县| 合江县| 华蓥市| 井研县| 大悟县| 乡宁县| 平武县| 上高县| 长武县| 进贤县|