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


-->

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM