1.通常我們會用url傳值來傳遞資料量較小的一些數據,如一些參數等,會利用session傳遞一些全域的會話層級的變數。但要窗體之間傳遞一些較複雜的數據,用session生命週期太長,可能不合適。用URL傳值,漢字可能出現編碼錯誤,而且可以傳遞的最大資料量比較有限。
2.我們可以利用模態對話框的dialogArguments屬性來實現跨頁面的資料傳遞,
透過如下方式可取得模態對話框的dialogArguments屬性:
var Variables = window.dialogArguments
利用此屬性可獲得模態對話框的傳入參數,可以是String, numeric, object, or array value that specifies arguments.尤其是物件或陣列型的參數,對於在頁面之間傳遞資料非常有用。舉例如下:
傳入頁面:
<HTML>
<HEAD>
<SCRIPT>
function AddNew(meetingID) {
var obj=new Object();
obj.name="qiubinchao";
obj.tel="12345678"; var strUrl="../MeetingManage/NewMeeting.aspx?id="+meetingID; window.showModalDialog(strUrl,obj,"dialogHeight:700px;dialogWidth=900pdialog; 50px;"); window.location="../MeetingManage/MeetingPublishedList.aspx"; }
</SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick="AddNew();" >Launch The Window</BUTTON>
</BODY>
</HTML>
接收頁面:
<HTML>
<HEAD>
<SCRIPT>
var oMyObject = window.dialogArguments;
var name= oMyObject.name;
var tel= oMyObject.tel;
</SCRIPT>
<title>Untitled</title>
</head>
<BODY STYLE="font-family: arial; font-size: 14pt; color: Snow;
background-color: RosyBrown;">
Name:
<SPAN STYLE="color:00ff7f">
<SCRIPT>
document.write(name);
</SCRIPT>
</SPAN>
<BR>
Tel:
<SPAN STYLE="color:00ff7f">
<SCRIPT>
document.write(tel);
</SCRIPT>
</SPAN>
</BODY>
</HTML>