为什么我的页面无法呈现我在jQuery / JS中进行页面重定向时所需的数据?

问题描述 投票:0回答:1

将ID的#switchtopagetwo和#switchtoindex分配给按钮,这些按钮可以从ID的名称中进行推断。我要做的是单击按钮,我想通过window.location = url;重定向到新页面。然后运行一个函数,根据我当前所在的位置,通过pagetwoData()或pageoneData()在页面上呈现一些数据。

$('#switchtopagetwo').on('click', function () {
  window.location = 'pagetwo.html';
  pagetwoData();
});

//pagetwo.html button
$('#switchtoindex').on('click', function () {
  window.location = 'index.html';
  pageoneData();
});

当我注释掉window.location时,这些功能运行,并且我可以在屏幕上看到数据,但是即使单击该按钮也没有页面重定向。当我以足够快的速度单击按钮时,可以看到函数的数据在瞬间被渲染,然后消失。当我console.log某些项目时,我可以看到console.log出现在控制台中,然后以相同的方式消失。

很明显window.location存在问题。我可以使用更好的代码来单击按钮,重定向页面以加载页面2数据,然后再次单击按钮以返回页面1数据吗?

javascript jquery html page-refresh window.location
1个回答
0
投票

当您重定向到新页面时,整个页面上下文将被放弃,并由新页面替换。在重定向之后,在源页面上]发生的任何事情都不能依靠。但是任何在目标页面上的加载都会发生。

而不是试图让Page1告诉Page2在加载时执行某些操作,而只是发生某些事情在Page2]上。例如:

// on index.html
pageoneData();
$('#switchtopagetwo').on('click', function () {
    window.location = 'pagetwo.html';
});

// on pagetwo.html
pagetwoData();
$('#switchtoindex').on('click', function () {
    window.location = 'index.html';
});

基本上,对于任何给定的页面,加载时要在该页面上发生的任何操作都应在加载时在该页面上执行。

© www.soinside.com 2019 - 2024. All rights reserved.