點擊按鈕(或超鏈接)如何跳轉到另外一個頁面並執行目標頁面的js函數

標題的前半部分其實不必贅述,按鈕也可以換成超鏈接。。

 

假設是需要在A頁面上的一個按鈕,點擊後跳轉到B頁面,傳一些參數後且並B頁面的某個js函數可以執行~~

 

關鍵在於如何跳轉到目標頁面之後並「接着」執行「目標頁面的js函數」。原因是目標頁面的某個js函數原來是需要點擊該頁面的按鈕或超鏈接才能觸發的,但現在需要在跳轉到B頁面後立即執行!

 

先不想是從A頁面跳轉到B頁面,假設你想在B頁面一打開就執行的話,是需要把代碼邏輯寫在$(function(){});裏面的。這就是一個突破的思路。

 

我們在A頁面定義一個按鈕用於觸發如題所示的操作:

 

<button type="button" class="btn btn-info" οnclick="openReport()">打開報表</button>

 它對應的js函數爲:

 

function openReport() {
     window.open("B頁面的url?flag=true&A="+a,'newwindow','height=1100,width=1400');
 }

 同時傳遞了2個參數給目標頁面B頁面:flag和A。

 

在B頁面的js文件的$(fucntion(){});裏面加上這一段代碼(關鍵),如

 

var url = window.location.href;//獲取當前瀏覽器的url
	index = url.indexOf("flag");//判斷當前url是否有flag,如果有,說明是從A頁面跳轉而來的,就執行下面的程序
	
	if(index !=-1) {//由A頁面跳轉而來
		//參數準備
		var start = url.indexOf("A");
		var a = url.substring(start + "A".length+1);
		var date = new Date();
		var year = date.getFullYear();//當前年
		var month = date.getMonth() + 1;//當前月(月是從0開始,所以必須加上1)
		month = month<10 ? ("0"+month):month;
		var queryDate = year + month;
	
		// + "&suffix=" + encodeURI(encodeURI(suffix));
		var url= "ajax的url?A=" + a +"&queryDate=" + queryDate;
            //帶參數執行邏輯
	    $.ajax({ 
		 url: url, dataType:"html",headers:{"X-Fragment":"_"},
		 cache:false,
		 success: function(html) { 
			//響應成功後的邏輯處理
		 }
	    }); 
	}

 這段代碼是很典型的,對於A頁面傳遞過來的參數的接收在代碼的註釋中都說明得十分詳細。

順便,還溫習了js獲取系統年和月的用法。

這裏對於flag變量的妙用是一種巧思~~~

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章