重定向后执行一个函数–javascript

好吧,我的页面上有一个简单的按钮(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'); }) 

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

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

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

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

例如:

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

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

我同意@remibreton,使用AJAX是更时尚,更现代的方法。

你可以用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'); }