showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值
下面是showModalDialog/showModelessDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口,希望对象大家有所帮助.
(一)showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.
farther.html
---------------------------
<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>
child.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
------------------------------------------------------------------------------------------------------------------------
(二)下面是关闭刷新父窗口的例子
farther.html
<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>
<input type ="button" value="openChild" onclick="openChild()">
----------------------------------------------------
child.html
--------
父窗口传递来的值:<input id="txt0" type="text"><br>
<input type ="button" value="关闭刷新父窗口" onclick="winClose(1)">
<input type ="button" value="关闭不刷新父窗口" onclick="winClose(0)">
<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>
不刷新父窗口的话在父窗口中直接这样一来设置可以.
<script> window.showModalDialog("child.html",window,"dialogWidth:335px;status:no;dialogHeight:300px"); </script>
本文参考了:http://dev.csdn.net/develop/article/15/15113.shtm
里面有showModalDialog/showModelessDialog的详细使用说明
http://www.cnblogs.com/adandelion/archive/2005/10/26/262666.html
<script> function echo() { x = showModalDialog("testnew.html",new Array(txt.value, txt1.value)); txt.value = x[0];//.txt1; txt1.value = x[1];//.txt2; } </script>
<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>