2

所以我得到了下面的代码来做我需要的事情,但现在被告知它需要在 ie7 中工作,而 sessionStorage 在该浏览器中不起作用。我对饼干知之甚少,所以想知道是否有人能指出我正确的方向。

    var yetVisited = sessionStorage['visited'];
    if (!yetVisited) {

        $j("#adspaceModal").modal("show").on("shown", function () {
    window.setTimeout(function () {
        $j("#adspaceModal").modal("hide");
    }, 20000);
});

        // open popup
        sessionStorage['visited'] = "yes";
    }

目前,我的模式在您第一次访问主页时出现,除非我在新的选项卡/窗口中打开它,否则它不会出现,这可以按照我的意愿工作。

任何帮助深表感谢。

4

1 回答 1

3

您可以使用功能检测来确定是否sessionStorage可用,如果不可用,请使用 jQuery Cookie 插件

var yetVisited = sessionStorage ? sessionStorage['visited'] : $.cookie('visited');
if (!yetVisited) {
    $j("#adspaceModal").modal("show").on("shown", function () {
        window.setTimeout(function () {
            $j("#adspaceModal").modal("hide");
        }, 20000);
    });

    // open popup
    sessionStorage ? sessionStorage['visited'] = 'yes' : $.cookie('visited', 'yes');
}

事实上,将它抽象为它自己的功能可能会更好:

function storage(key, value) {
    if (!value) {
        // getter
        return window.sessionStorage ? window.sessionStorage[key] : $.cookie(key);
    } 
    else { 
        // setter
        window.sessionStorage ? window.sessionStorage[key] = value : $.cookie(key, value);
    }
}
于 2013-10-11T08:57:04.377 回答