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

时间:2012-03-01 21:44:02

标签: javascript jquery

好的,我的页面上有一个简单的按钮(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 个答案:

答案 0 :(得分:9)

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

例如:

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

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

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

答案 1 :(得分:3)

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

您唯一的其他解决方案是通过AJAX获取页面并运行回调函数以在加载内容时执行。 Here is something to get you started

此外,jQuery as a nice .ajax() method可以轻松执行AJAX次请求并将回调与成功和失败的请求相关联。

答案 2 :(得分:0)

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