仅在用户第一次访问网站时运行jQuery代码

Seb*_*ina 2 cookies jquery

我有这个代码

setTimeout(function () {
    $("#videoOverlay").fadeIn();
    document.getElementById("video").play();
}, 8000);
Run Code Online (Sandbox Code Playgroud)

这意味着加载后8秒钟会出现一个弹出窗口并播放视频.我只希望在我第一次访问该网站时出现这个问题.我怎么能用jQuery做到这一点?

Vix*_*xed 9

尝试使用localStorage而不是cookie:

if (!localStorage.getItem('viewed')){
    setTimeout(function () {
        $("#videoOverlay").fadeIn();
        document.getElementById("video").play();
        localStorage.setItem('viewed','yes');
    }, 8000);
};
Run Code Online (Sandbox Code Playgroud)

要删除它:

localStorage.removeItem('viewed');
Run Code Online (Sandbox Code Playgroud)

使用本地存储,Web应用程序可以在用户的​​浏览器中本地存储数据.

来自http://www.w3schools.com/html/html5_webstorage.asp

什么是HTML本地存储?

在HTML5之前,应用程序数据必须存储在cookie中,包含在每个服务器请求中.本地存储更安全,可以在本地存储大量数据,而不会影响网站性能.

与cookie不同,存储限制要大得多(至少5MB),信息永远不会传输到服务器.

本地存储是每个源(每个域和协议).来自一个来源的所有页面都可以存储和访问相同的数据.

使用:sessionStorage

您还可以使用等于localStorage对象的sessionStorage对象,但它仅存储一个会话的数据.当用户关闭特定浏览器选项卡时,将删除数据.

if (!sessionStorage.viewed){
    setTimeout(function () {
        $("#videoOverlay").fadeIn();
        document.getElementById("video").play();
        sessionStorage.viewed=1
    }, 8000);
};
Run Code Online (Sandbox Code Playgroud)