場景:前置的查詢頁面,選擇查詢條件后提交到另一個頁面。
方式很多,列出我知道的幾種
1.window.open.
2.Response.Redirect.
3.Server.Transfer.
方法一和方法二都存在同樣的問題,因為是get方式提交的,所以提交的數據都會顯示URL中,一個是安全問題,另外一個是URL長度限制,在IE中,URL最大長度為2083.所以數據量過多時會導致數據丟失。
于是考慮到通過POST方式傳遞參數。
????????/*? ? ? ??
????????*功能: JS跳轉頁面,并已POST方式提交數據
? ? ? ? *參數: URL 跳轉地址 PARAMTERS 參數
? ? ? ? *返回值:
? ? ? ? *創建時間:20160713
? ? ? ? *創建人:
? ? ? ? */
????????function ShowReport_Click() {
? ? ? ? ? ? var parames =new Array();
? ? ? ? ? ? parames.push({ name: "param1", value: "param1"});
? ? ? ? ? ? parames.push({ name: "param2", value: "param2"});
? ? ? ? ? ? Post("SupplierReportPreview.aspx", parames);
? ? ? ? ? ? return false;
? ? ? ? }
? ? ? ? /*? ? ? ? *功能: 模擬form表單的提交
? ? ? ? *參數: URL 跳轉地址 PARAMTERS 參數
? ? ? ? *返回值:
? ? ? ? *創建時間:20160713
? ? ? ? *創建人:
? ? ? ? */
????????function Post(URL, PARAMTERS) {
? ? ? ? ? ? //創建form表單
? ? ? ? ? ? var? temp_form = document.createElement("form");
? ? ? ? ? ? temp_form.action = URL;
? ? ? ? ? ? // 如需打開新窗口,form的target屬性要設置為'_blank'temp_form.target = "_self";
? ? ? ? ? ? temp_form.method = "post";
? ? ? ? ? ? temp_form.style.display = "none";
? ? ? ? ? ? //添加參數
? ? ? ? ? ?for(var item in PARAMTERS) {
? ? ? ? ? ? ? ? var opt = document.createElement("textarea");
? ? ? ? ? ? ? ? opt.name = PARAMTERS[item].name;
? ? ? ? ? ? ? ? opt.value = PARAMTERS[item].value;
? ? ? ? ? ? ? ? temp_form.appendChild(opt);
? ? ? ? ? ? }
? ? ? ? ? ? document.body.appendChild(temp_form);
? ? ? ? ? ? //提交數據? ? ? ? ? ?
? ? ? ? ? ? temp_form.submit();
? ? ? ? }