1. 程式人生 > >JS window.showModalDialog之重新整理

JS window.showModalDialog之重新整理

    前段時間在後臺使用JS的winodw.showModalDialog來檢視靜態頁面內容,在使用這個之間偶都是一直使用window.open的。後來發現使用showModalDialog比較好,但是當靜態頁面的內容更新的時不能及時顯示更新後的頁面內容。直到今天在做對父視窗的重新整理時才想起前可以給地址中用JS新增一個隨機函式。

實現:

  window.showModalDialog(getUrl+"?Rnd="+Math.random(),"","dialogWidth:600px;dialogHeight:400px;help:no;scroll:yes;center:yes;status:no;");

這樣就可以確保每次開啟頁面時都是一個新的頁面而不會被快取了。 math.random()取得某個範圍內的隨機數

   由於須要檢視頁面內容後,讓系統自動標記這條資訊內容為已讀狀態,當閱讀這條資訊並更新資料庫相應欄位已標記這條資訊被閱,同時又需要更新列表頁面的資訊狀態,這就需要對列表頁面進行過載。只要當關閉資訊閱讀頁面同時過載父視窗就可以了。

實現:

if(isRe){//在這裡使用一個引數來指定是否須要更新父視窗頁面,由程式列表頁面給於這引數值。
   window.opener=null;  
   window.location.reload();  

例:

function QuerySub(reportJsp,reporturl)
{
//showModalDialog的第二個引數是傳遞給子視窗的值   showModelessDialog
//在子視窗可以通過window.dialogArguments方法獲取    
//如果不需要傳遞,這個引數就用window本身


var result = window.showModalDialog(reportJsp+"?Rnd="+Math.random(),"","dialogWidth:400px;dialogHeight:auto;help:no;scroll:yes;center:yes;status:no;");  


//reportjsp為jsp檔名


if(result != null){       
//更改子視窗查詢時調出主視窗並輸出引數查詢
window.location=reporturl+ result[0]; //reporturl為主視窗報表路徑
}