簡體   English   中英

重定向后如何立即執行JavaScript操作?

[英]How to perform a javascript action right after redirect?

用戶在我的網站上創建帳戶后,我想將用戶重定向到主頁,並在頂部顯示Twitter風格的消息欄。 這是我的方式:

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

            ShowMessageBar(response.Message);                
        },

消息欄確實出現了,但由於重定向被取消,因此僅顯示一秒鍾。 重定向完成后如何顯示消息? location.href是否有完整的事件? 謝謝。

您需要通過cookiequesrystringlocalStorage傳遞它。 使用localStorage或cookie這樣的事情(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

這將需要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;
        } 
    },

頁面的URL更改后,所有執行將停止並轉移到新頁面。 將參數傳遞給新頁面,該參數將觸發您想要的事件。

在我看來,您需要從重定向的URL調用ShowMessageBar()。

您可以發送參數並在准備好文檔時檢查其是否存在。 可能是達到所需效果的最簡單方法。

如果您真的想顯示該消息,則可以在重定向它們之前始終將其置於警報中,這將暫停執行,直到他們單擊“確定”為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM