show只在网站的一个导航中弹出一次

时间:2014-03-31 06:48:13

标签: javascript jquery web laravel popup

我有一个使用laravel创建的网站。我希望用户在第一次访问我的网站时能够看到弹出窗口。

第一次我的意思是 - 用户来到我网站上的任何页面(这是第一次),访问网站上的一些链接页面(现在,这些页面访问不是第一次),在同一个网站中打开Facebook选项卡(从而离开我的网站),然后再次在同一选项卡中打开我的网站(这是第一次)。

一次弹出的基本原因是在他浏览网站时不会一次又一次地打扰用户。但是,一旦他离开并再次回来,那么我想把它视为一次新的访问(并再次显示弹出窗口)。

我知道我可以在setTimeout()中使用jQuery执行弹出式操作。但是如何做一次呢?请注意,弹出窗口可以显示在任何页面上(如果是当前访问的第一页),而不仅仅是在主页上。

3 个答案:

答案 0 :(得分:2)

使用jQuery Cookie之类的插件,然后执行:

if(!$.cookie("popup"))
{
 your_popup_function();
 $.cookie("popup",true);
}

编辑:既然您编辑了有关“首次访问”定义的问题,我会建议使用推荐人Walter Brand建议的方法。取自this post

document.referrer.indexOf(location.protocol + "//" + location.host) === 0;

答案 1 :(得分:2)

您可以使用document.referrer,并检查上一页是否是您的某个域。但出于安全原因,并非所有访问者/浏览器都会返回此值。

所以这是不可靠的。

答案 2 :(得分:2)

不使用插件的解决方案:

var adCookie = document.cookie.indexOf('ad_displayed')

if (adCookie != -1) {
   your_popup_function();
   document.cookie = "ad_displayed=1";
}

这是个主意,当然你可以在cookie上设置到期日期。阅读更多here