如何在重定向后立即执行javascript操作?

时间:2011-03-09 21:10:11

标签: javascript .net jquery asp.net asp.net-mvc

用户在我的网站上创建帐户后,我想将用户重定向到主页并在顶部显示推文样式的消息栏。这就是我的方式:

success: function (response) {
            if (response.Success) {
                location.href = response.ReturnUrl;
            } 

            ShowMessageBar(response.Message);                
        },

消息栏确实出现,但它只显示一秒钟,因为它被重定向取消了。在重定向完成后,我该怎么做才能显示消息? location.href有完整的事件吗?感谢。

6 个答案:

答案 0 :(得分:3)

您需要将其传递给cookiequesrystringlocalStorage。 使用localStorage或cookies(在IE8 +和大多数其他浏览器中都可以使用localStorage)这样的东西:

在当前页面上:

if('localStorage' in window) 
    localStorage.setItem('message', response.Message);
else // use cookie

在新页面上:

$(function(){
    if('localStorage' in window && !!localStorage['message']) {
         ShowMessageBar(localStorage['message']);
         localStorage.removeItem('message');
    }
    else // use cookie
});

如果您对这些技术感到不舒服,可以使用jquery插件来包装此功能。我建议jstorage

答案 1 :(得分:2)

这将需要jQuery的Cookie插件:

http://plugins.jquery.com/project/Cookie

将它放在主页标题中的某处:

jQuery(function($){ 
  if($.cookie("message")) {
    ShowMessageBar($.cookie("message"));
    $.cookie("message", "any_value", { expires: -1 });
});

在你的成功功能中:

success: function (response) {
        if (response.Success) {
            $.cookie("message", response.Message);
            location.href = response.ReturnUrl;
        } 
    },

答案 2 :(得分:1)

一旦页面的url更改了所有执行停止并转移到新页面。将参数传递给触发您想要的事件的新页面。

答案 3 :(得分:0)

听起来像你需要从重定向的URL调用ShowMessageBar()。

答案 4 :(得分:0)

您可以发送参数并检查文档是否存在。可能是达到预期效果的最简单方法。

答案 5 :(得分:0)

如果您真的想要显示该消息,您可以在重定向之前将其置于警报中,这会停止执行直到他们点击“确定”。