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 に答える