重定向后执行函数 - javascript

IT技术 javascript jquery
2021-03-22 04:45:11

好的,我的页面 (MyPage) 上有一个简单的按钮,它淡出当前 div(淡入淡出 1)并淡入另一个淡入淡出(淡入淡出 2)。我现在意识到我可能想直接从其他地方转到该页面(淡入淡出 2)。我可以通过window.location. 但是,我也希望如果该链接被按下(从其他一些随机页面),请转到页面(淡入淡出 1),然后fadeOut是当前 div 和fadeIn另一个(淡入淡出 2)。

希望这不会太令人困惑。这是我用来访问页面(MyPage)的代码:

$('#fav').click(function(){
    window.location = 'production/produc_order.php';
    $('#view_production').fadeOut('slow');
    $('#create_order').fadeIn('slow');
})
3个回答

如果您不想或不能重新编码您的页面以支持 AJAX,另一个老式的选择是在 URL 中传递一个参数作为刷新页面的提示。(如果您觉得确实有必要,您可以通过将重定向设置为 POST 来隐藏它,或者使用 cookie 技术。重点是刷新的页面需要来自前一个页面的某种形式的标记。)

例如:

$('#fav').click(function(){
    window.location = 'production/produc_order.php?create=1';
})

并将淡入淡出代码放入$(document).ready()函数中,并检查create参数、cookie 或其他任何内容。

不过我会同意@remibreton,使用 AJAX 是更时髦、更现代的方法。

更改window.location将杀死当前在浏览器中运行的所有脚本。

您唯一的其他解决方案是通过获取页​​面AJAX并运行回调函数以在加载内容时执行。这里有一些东西可以让你开始

此外,jQuery 作为一种很好的.ajax()方法,可以轻松执行AJAX请求并将回调与成功和失败的请求相关联。

重定向后如何运行脚本(例如显示模态)?
2021-05-02 04:45:11
正是如此,我该如何执行我想要的其他操作。
2021-05-07 04:45:11
您的答案中的第一个链接不再维护,您能否更新您的答案@RémiBreton
2021-05-18 04:45:11

你可以用 sessionStorage() 来做到

$('#fav').click(function(){
  sessionStorage.setItem("reloading", "true");
  window.location = 'production/produc_order.php';
});
var reloading = sessionStorage.getItem("reloading");
if(reloading == true) {
  sessionStorage.removeItem("reloading");
  $('#view_production').fadeOut('slow');
  $('#create_order').fadeIn('slow');
}