更改location.href后执行函数

cla*_*ios 1 javascript jquery

我想在重定向页面后调用一个函数。

在我的函数中,我放置了一个 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
}
Run Code Online (Sandbox Code Playgroud)

小智 5

我同意卡塔纳的评论。重定向语句之后的任何内容都不会运行,因为页面本身正在重定向。我建议仍然获取 item_id 并绕过该障碍的一种方法是将 item_id 作为参数包含在重定向 URL 中。然后进入新页面后,从 url 中解析该参数并保存 item_id。

Cory Laviska 的有关在 Javascript 中解析 URL 的文章中有一个很好的示例,展示了如何从 URL 获取各个参数。

以曼尼什的回答为基础:

当前页面的功能:

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

重定向页面上的函数(假设您只有一个参数)

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

它可能需要几周的时间,因为我没有测试代码,但希望它能让你走上正轨。:)

希望这有帮助。如果它有帮助和/或回答您的问题,请选择作为答案并投票!:D 如果您有任何疑问,请随时告诉我