2016-06-09 81 views
0

我想在重定向頁面後調用函數。更改位置後執行功能.href

在我的功能裏面,我把一個參數是一個ID,但當我檢查控制檯它不會顯示。我知道我可以通過單擊事件來運行它,但是我不會從上一頁獲取ID參數。

有沒有辦法完成它?

代碼:

function encode(item_id){ 
    $('.js-encode').click(function(){ 
    var url = $(this).data('url'); 
    location.href = url; // new url 
    save(item_id); // call function after new url finish loading 
    }); 
} 

function save(item_id){ 
    console.log(item_id); // check if there's item_id exists 
} 
+6

因爲您被重定向到另一個頁面。上一頁中的javascripts將不會應用到新頁面 – Sherlock

+0

有沒有辦法得到它? – claudios

+0

您需要先調用保存,然後重定向。 –

回答

1

我同意Katana的評論。你的重定向語句後的任何內容都不會運行,因爲頁面本身正在重定向。我建議仍然可以獲得item_id並避開該障礙的一種方法是將item_id作爲參數包含在重定向網址中。然後,在新頁面上解析該參數,然後保存item_id。

Cory Laviska's article on Parsing URLs in Javascript的一個很好的例子展示瞭如何從URL中獲取單個參數。

大廈到Manish' answer

功能在當前頁:

function encode(item_id){ 
    $('.js-encode').click(function(){ 
    var url = $(this).data('url'); 
    location.href = url+'?saved_item_id='+item_id; // new url 
    }); 
} 

對重定向的頁面功能(假設你只有一個參數)

$(document).ready(function() { 
    var url = $(this).data('url'); 
    var item_id = url.queryKey['saved_item_id']; 
    save(item_id); 
}); 

它可能需要一些tweeks,因爲我沒有測試代碼,但希望它能讓你走上正軌。 :)

希望這有助於。如果它有幫助和/或回答你的問題,請選擇回答和投票! :d隨意讓我知道如果您有任何疑問

+0

感謝您的努力,但如何在重定向後加載保存功能? – claudios

+0

更新了代碼以包含兩個頁面的功能。 :) –

1

你可以嘗試這樣的事情。

function encode(item_id){ 
    $('.js-encode').click(function(){ 
    var url = $(this).data('url'); 
    location.href = url+'?saved_item_id='+item_id; // new url 
    //save(item_id); // call function after new url finish loading 
    }); 
} 

/*(function save(item_id){ 
    console.log(item_id); // check if there's item_id exists 
}*/ 

此外,在新的重定向URL上,您可以獲取item_id,該item_id已附加到上一頁的URL中。

希望這可能有所幫助。

+0

我明白你的意思,但是如何在頁面加載後調用函數?我想在重定向發生後調用函數 – claudios

+0

您可以檢查saved_item_id是空白還是'typeof(saved_item_id)!='undefined''如果saved_item_id不是空白​​或存在,您可以調用您的函數。 :-) – Manish

2

試試這個

的容器是你的頁面,在那裏你執行一個動作的部分。

function encode(item_id){ 
    $('.js-encode').click(function(){ 
    var url = $(this).data('url'); 
    $("#container").load(url,function(){ 
     // other stuffs and functionalities 
     save(item_id); // call function after new url finish loading 
    }); 
    }); 
} 
+0

我可以將信息從加載的URL傳遞迴頂層功能嗎? – Shadoath