2013年10月2日 星期三

Java Script : 關閉 子視窗 父視窗重新更新畫面

作法一

在 子視窗 <body> 標籤埋入 JavaScript function 去呼叫 刷新。

範例:

<html>
 <body onunload="unLoad();" >
.......... 其他的 code
<input type='submit' value=' 查 詢 ' />
<input type='reset' value=' 取 消 ' onclick="window.close();" />
 </body>
</html>
<script type="text/JavaScript">
function unLoad()
{
window.opener.location.href = window.opener.location.href;
window.opener=null;
window.close();
}
</script>


上述 的 範例 的確在 子視窗 關閉時,更新 父視窗,但會有一個狀況,就是 當按取消鍵關閉時,仍會刷新父視窗,這時又使用 SESSION 去記錄動作時,SESSION 會因此被覆蓋掉上一個動作。

解決方法:

把這一段

<script type="text/JavaScript">
function unLoad()
{
window.opener.location.href = window.opener.location.href;
window.opener=null;
window.close();
}
</script>

改成

<script type="text/JavaScript">
window.opener.location.href = window.opener.location.href; window.opener=null; window.close();
</script>

並在後端作完處理後才執行,也就是說這端 code 由前端 移 到後端。
如此一來便不會有上述的問題。