javascript - 如何仅在第一次访问时在页面加载时显示带有 slimbox 的弹出窗口?

标签 javascript jquery cookies slimbox

到目前为止,我的想法是实现一个函数 popup("url") 检查现有的 cookie,该 cookie 通过加载页面主体来触发(onLoad - 我知道这不是一个很好的解决方案)。我使用了 here 中的确切代码实现我包含在 application.js 中的 cookie 功能。我还包含了我的 popup() 函数:

   function popUp(startimage) {
    var x = readCookie('ecocrowd')
    if (x = 'nopopup') {
    }
    else {
        jQuery.slimbox(startimage);
    }

}

在我的起始页的 html 模板中,我包含以下部分:

<body onLoad="popup("wirdiezukunft.png")"> 

<script>createCookie('ecocrowd','nopopup',7)</script>

我是不是漏掉了什么?这是我第一次使用这样的 Javascript 实现,所以我将不胜感激任何类型的帮助。提前致谢!

更新(createcookie() 的内容):

function createCookie(name,value,days) {


    if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }

最佳答案

忘记cookies,使用localStorage因为它有一个更实用的界面,并且没有路径、过期和域等奇怪的东西:

if(!window.localStorage.getItem('hasShown')) {
  showMyPopup();
  window.localStorage.setItem('hasShown', true);
}

实际上 HTML5 中有一个更实用的 cookie 接口(interface),但它还没有像 localStorage 那样得到广泛支持。

关于javascript - 如何仅在第一次访问时在页面加载时显示带有 slimbox 的弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31385459/

相关文章:

发送 key 的 Javascript 语句

javascript - 为什么我的获取响应不会在我的调度中传递?

jquery - 如何在初始页面加载时只显示两个表单域而不是全部 5 个? CSS

javascript - IE 中的 Cookie 异常

java - Vaadin 从 RouterLayout 引用 mainLayout

Perl 获取 session cookie

javascript - 使用 PhantomJS 抓取带有动态组合下拉框的 ASP.NET 网站

Javascript 闭包函数不返回正确的值

javascript - 使用 Ajax 请求 Rails Controller 数据

javascript - 使用 php 的数据库中的 Jquery Accordion 数据?