標題的前半部分其實不必贅述,按鈕也可以換成超鏈接。。
假設是需要在A頁面上的一個按鈕,點擊后跳轉到B頁面,傳一些參數后且並B頁面的某個js函數可以執行~~
關鍵在於如何跳轉到目標頁面之后並「接着」執行「目標頁面的js函數」。原因是目標頁面的某個js函數原來是需要點擊該頁面的按鈕或超鏈接才能觸發的,但現在需要在跳轉到B頁面后立即執行!
先不想是從A頁面跳轉到B頁面,假設你想在B頁面一打開就執行的話,是需要把代碼邏輯寫在$(function(){});里面的。這就是一個突破的思路。
我們在A頁面定義一個按鈕用於觸發如題所示的操作:
- <button type="button" class="btn btn-info" onclick="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變量的妙用是一種巧思~~~
來自:http://raising.iteye.com/blog/2283257 iteye 中的盡力而為