小编sta*_*fan的帖子

如何在HTML5历史状态中存储函数

因此,我使用HTML5历史记录管理来添加在具有AJAX加载的子内容的网站中前后导航的功能.

现在我想在状态对象中存储javascript函数,以便在弹出状态下进行回调.或多或少像以下代码:

$(window).bind("popstate", function(event) {
    var state = event.originalEvent.state;
    if (!state) {
        return;
    }
    state.callback(state.argument);
}

function beforeLoad() {
    var resourceId = "xyz";
    var func;

    if (case1) {
        func = switchPageToMode1;
    } else { // case 2
        func = swithPageToMode2;
    }

    func(resourceId); // run the function
    window.history.pushState({ callback: func, resourceId: resourceId }, "newTitle", "newURL"); // and push it to history
}

function switchPageToMode1(resourceId) {
    alterPageLayoutSomeWay();
    loadResource(resourceId);
}

function swithPageToMode2(resourceId) {
    alterPageLayoutSomeOtherWay();
    loadResource(resourceId);
}

function loadResource(resourceId) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

行.所以我要做的是存储对javascript函数的引用.但是当推送状态(实际的window.history.pushState调用)时,浏览器会提出投诉,即错误:"DATA_CLONE_ERR:DOM …

javascript html5 browser-history

4
推荐指数
1
解决办法
3362
查看次数

Javascript简化了if语句

我正在试图理解这个非常简化的if语句.在搜索答案时,我发现的是与三元运算符相关的答案.

无论如何.为什么下面的第一个案例起作用,而后者抛出一个ReferenceError?只是想了解事情是如何运作的.

javascript if-statement

1
推荐指数
1
解决办法
181
查看次数

标签 统计

javascript ×2

browser-history ×1

html5 ×1

if-statement ×1