問題背景
客戶在模态視窗中釋出填報表,當點選送出時,總會打開一個新頁面提示送出成功。客戶希望,在模态視窗中送出報表後能夠在本視窗中彈出提示,并且在該模态視窗中重新整理。
問題分析
由于報表送出時會請求一個servlet處理,而後傳回到該頁面。而模态視窗并不是一個頁面,可以将其了解為一個彈出視窗。是以當報表送出後,servlet傳回頁面時找不到對應的頁面,是以會打開一個新視窗。
針對模态視窗自身的特點,如果我們能夠将其嵌套在架構中,如frame,送出以後應該就不會打開新視窗了,是以本文即嘗試将模态視窗放到iframe中嵌套。
實作步驟
第一步,準備任意填報表。
第二步,準備打開模态視窗的jsp頁面,如下:
<html>
<body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0 bgcolor="pink">
<input type="button" value="模态視窗" onClick="showModal('modelDialog.html',700,600)"></input>
<script language="javascript">
function showModal(urlstr,width,height){
var me;
me=window;
x=(screen.availWidth-width)/2;
y=(screen.availHeight-height)/2;
dWin=window.showModelessDialog(urlstr,me,'dialogWidth='+width +'px;dialogHeight='+height+'px;help:no;status:no;scroll:no;dialogLeft='+x+';dialogTop='+y);
}
</script>
</body>
</html>
第三步,準備modelDialog.html,如下:
<html>
<BODY>
<iframe src="showReport.jsp" width="100%" height="100%">
</BODY>
</html>
将釋出報表的jsp嵌套在ifame中。
最後,準備釋出報表的jsp,這裡不再贅述。
我們來看一下經過這樣處理後的效果:
點選确定