場(chǎng)景:前置的查詢頁(yè)面,選擇查詢條件后提交到另一個(gè)頁(yè)面。
方式很多,列出我知道的幾種
1.window.open.
2.Response.Redirect.
3.Server.Transfer.
方法一和方法二都存在同樣的問(wèn)題,因?yàn)槭莋et方式提交的,所以提交的數(shù)據(jù)都會(huì)顯示URL中,一個(gè)是安全問(wèn)題,另外一個(gè)是URL長(zhǎng)度限制,在IE中,URL最大長(zhǎng)度為2083.所以數(shù)據(jù)量過(guò)多時(shí)會(huì)導(dǎo)致數(shù)據(jù)丟失。
于是考慮到通過(guò)POST方式傳遞參數(shù)。
????????/*? ? ? ??
????????*功能: JS跳轉(zhuǎn)頁(yè)面,并已POST方式提交數(shù)據(jù)
? ? ? ? *參數(shù): URL 跳轉(zhuǎn)地址 PARAMTERS 參數(shù)
? ? ? ? *返回值:
? ? ? ? *創(chuàng)建時(shí)間:20160713
? ? ? ? *創(chuàng)建人:
? ? ? ? */
????????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表單的提交
? ? ? ? *參數(shù): URL 跳轉(zhuǎn)地址 PARAMTERS 參數(shù)
? ? ? ? *返回值:
? ? ? ? *創(chuàng)建時(shí)間:20160713
? ? ? ? *創(chuàng)建人:
? ? ? ? */
????????function Post(URL, PARAMTERS) {
? ? ? ? ? ? //創(chuàng)建form表單
? ? ? ? ? ? var? temp_form = document.createElement("form");
? ? ? ? ? ? temp_form.action = URL;
? ? ? ? ? ? // 如需打開(kāi)新窗口,form的target屬性要設(shè)置為'_blank'temp_form.target = "_self";
? ? ? ? ? ? temp_form.method = "post";
? ? ? ? ? ? temp_form.style.display = "none";
? ? ? ? ? ? //添加參數(shù)
? ? ? ? ? ?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);
? ? ? ? ? ? //提交數(shù)據(jù)? ? ? ? ? ?
? ? ? ? ? ? temp_form.submit();
? ? ? ? }