龍行天下

            政 博
          隨筆 - 23, 文章 - 0, 評論 - 12, 引用 - 0
          數據加載中……

          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">
          也可以在服務器端取消緩存,參考:
          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的詳細使用說明

          posted on 2007-12-29 14:33 feingto 閱讀(1400) 評論(0)  編輯  收藏 所屬分類: Ajax、JAVASCRIPT

          主站蜘蛛池模板: 霍山县| 中宁县| 诸暨市| 贡山| 凤翔县| 云安县| 肥东县| 咸阳市| 云龙县| 舒城县| 鸡东县| 星子县| 清丰县| 丰城市| 张家港市| 临高县| 射洪县| 靖安县| 收藏| 儋州市| 鄂尔多斯市| 六枝特区| 西畴县| 韶山市| 斗六市| 湛江市| 静海县| 达州市| 中超| 中山市| 鲜城| 南昌市| 汉寿县| 安西县| 盐山县| 铜陵市| 通州市| 宜都市| 新余市| 盘山县| 上高县|