![](/img/trans.png)
[英]How to perform some action on a node after it is loaded in JavaScript in Odoo?
[英]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是否有完整的事件? 謝謝。
您需要通過cookie
, quesrystring
或localStorage
傳遞它。 使用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.