所以我有以下代码做我需要它做的事情,但现在被告知它需要在 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";
}
目前,我的模态在您第一次访问主页时出现,除非我在新的选项卡/窗口中打开它,否则不会出现,这符合我想要的方式。
任何帮助都非常感谢。
您可以使用功能检测来找出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);
}
}