<!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">
-->