【问题标题】:Event before loading ajax content加载ajax内容之前的事件
【发布时间】:2013-07-01 17:51:20
【问题描述】:

我试图在 cookie 中维护一些对象以恢复一些设置。最初我尝试在 window.unload 中使用 cookie 保存和恢复设置。它在整页加载时工作。但在我的情况下它不起作用,因为整个页面没有加载只是使用 ajax post(ajax load)替换特定内容。那么你能告诉我在哪种情况下我可以将这些值保存在 cookie 中以便在使用 ajax post 时恢复?

我在 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;
}

【问题讨论】:

    标签: javascript jquery ajax cookies


    【解决方案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);
    

    【讨论】:

    • 酷。这个解决方案效果很好。非常感谢。除了触发 'unload' 事件,没有其他方法吗?
    • @RanjithKumarGovarthanan 你可以有一个自定义事件,但这只是意味着你必须在unload 上触发它,但也许这是实现它的更好方法。或者您是否希望它在调用.load 时自动发生?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    相关资源
    最近更新 更多