将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数据吗?
当您重定向到新页面时,整个页面上下文将被放弃,并由新页面替换。在重定向之后,在源页面上]发生的任何事情都不能依靠。但是任何在目标页面上的加载都会发生。
而不是试图让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'; });
基本上,对于任何给定的页面,加载时要在该页面上发生的任何操作都应在加载时在该页面上执行。