1. 程式人生 > >利用js進行頁面跳轉及傳遞引數的獲取

利用js進行頁面跳轉及傳遞引數的獲取

頁面A跳轉到頁面B及攜帶引數

window.location.href="../SystemInfoJsp/add_user.jsp?"+"id="+id+"&name="+name+"&grade="+grade;

解釋:

"../SystemInfoJsp/add_user.jsp?"這個為你要跳轉的頁面地址,後面追加引數的話要寫上?

"id="+id+"&name="+name+"&grade="+grade 這裡為你要傳到另外一個頁面的資料,是鍵值對的形式,多個值之間用&符號隔開
 

頁面B獲取A頁面跳轉傳遞過來的引數

$(function() {
	var loc = location.href;//獲取整個跳轉地址內容,其實就是你傳過來的整個地址字串
	console.log("我的地址"+loc);
	var n1 = loc.length;//地址的總長
	var n2 = loc.indexOf("?");//取得=號的位置
	var parameter = decodeURI(loc.substr(n2+1, n1-n2));//擷取從?號後面的內容,也就是引數列表,因為傳過來的路徑是加了碼的,所以要解碼
	var parameters  = parameter.split("&");//從&處拆分,返回字串陣列
	console.log("引數列表"+parameters);
	var paValue = new Array();//建立一個用於儲存具體值得陣列
	for (var i = 0; i < parameters.length; i++) {
		console.log("引數鍵值對值"+i+":"+parameters[i]);
		var m1 = parameters[i].length;//獲得每個鍵值對的長度
		var m2 = parameters[i].indexOf("=");//獲得每個鍵值對=號的位置
		var value = parameters[i].substr(m2+1, m1-m2);//獲取每個鍵值對=號後面具體的值
		paValue[i] = value;
		console.log("引數值"+i+":"+value);
	}
	console.log("具體引數陣列:"+paValue);	
});

要獲取到你傳過來的資料,可以通過陣列paValue[index]的方式獲取引數,比如上面我傳過來了id,name,grade三個引數,那麼paValue[0]就是id的值,paValue[1]就是name的值,paValue[2]就是grade的值。

注意:

因為這個paValue陣列寫在了$(function() { })裡面,所以要想獲得這個陣列的值,那麼你的程式碼就得繼續寫在這個$(function() { })裡面。不能再寫一個$(function() { }),在新寫的裡面去調這個陣列,如果要想在新的$(function() { })裡面或者是之前$(function() { })之外的方法中呼叫這個值,可以把var paValue = new Array();

這句話寫成全域性變數,這樣其他的就可以用了。如下:

var paValue = new Array();//建立一個用於儲存具體值得陣列
$(function() {
	var loc = location.href;//獲取整個跳轉地址內容,其實就是你傳過來的整個地址字串
	console.log("我的地址"+loc);
	var n1 = loc.length;//地址的總長
	var n2 = loc.indexOf("?");//取得=號的位置
	var parameter = decodeURI(loc.substr(n2+1, n1-n2));//擷取從?號後面的內容,也就是引數列表,因為傳過來的路徑是加了碼的,所以要解碼
	var parameters  = parameter.split("&");//從&處拆分,返回字串陣列
	console.log("引數列表"+parameters);
	for (var i = 0; i < parameters.length; i++) {
		console.log("引數鍵值對值"+i+":"+parameters[i]);
		var m1 = parameters[i].length;//獲得每個鍵值對的長度
		var m2 = parameters[i].indexOf("=");//獲得每個鍵值對=號的位置
		var value = parameters[i].substr(m2+1, m1-m2);//獲取每個鍵值對=號後面具體的值
		paValue[i] = value;
		console.log("引數值"+i+":"+value);
	}
	console.log("具體引數陣列:"+paValue);	
});