2013-06-29 124 views
2

我試圖在cookie中保留幾個對象來恢復某些設置。最初我在window.unload中嘗試使用cookie保存和恢復設置。它在全頁面加載中工作。但它並沒有在我的情況下工作,因爲整個頁面不加載只是使用ajax post(ajax load)替換特定內容。那麼你能告訴我在哪個事件中,我可以將這些值保存在cookie中,以便在使用ajax後恢復?加載ajax內容之前的事件

我試着在window.unload事件下面的代碼

window.onunload = function (e) { 
    var gridObjModel = $("#Grid"); 
    var myCookie = escape(JSON.stringify({ 
     "CurrentPage": gridObjModel.pageSettings.currentPage, 
     "SortedColumns": gridObjModel.sortSettings.sortedColumns, 
     "GroupedColumns": gridObjModel.groupSettings.groupedColumns 
    })); 
    document.cookie = myCookie; 
} 

回答

1

你可以用下面的嘗試:

$(window).on("unload", function (e) { 
    var gridObjModel = $("#Grid"); 
    var myCookie = escape(JSON.stringify({ 
     "CurrentPage": gridObjModel.pageSettings.currentPage, 
     "SortedColumns": gridObjModel.sortSettings.sortedColumns, 
     "GroupedColumns": gridObjModel.groupSettings.groupedColumns 
    })); 
    document.cookie = myCookie; 
}); 

當你做一個AJAX負載只是觸發卸載之前:

$(window).trigger("unload"); 
$("#foo").load(someUrl); 
+0

很酷。這個解決方案很好。非常感謝。有沒有其他的方式,而不是觸發'卸載'事件? – RGR

+0

@RanjithKumarGovarthanan你可以有一個自定義事件,但這意味着你必須在'unload'上觸發它,但也許這是一個更好的實現方法。或者你是否想在調用'.load'時想自動發生? – mekwall