我有一个使用laravel创建的网站。我希望用户在第一次访问我的网站时能够看到弹出窗口。
第一次我的意思是 - 用户来到我网站上的任何页面(这是第一次),访问网站上的一些链接页面(现在,这些页面访问不是第一次),在同一个网站中打开Facebook选项卡(从而离开我的网站),然后再次在同一选项卡中打开我的网站(这是第一次)。
一次弹出的基本原因是在他浏览网站时不会一次又一次地打扰用户。但是,一旦他离开并再次回来,那么我想把它视为一次新的访问(并再次显示弹出窗口)。
我知道我可以在setTimeout()
中使用jQuery
执行弹出式操作。但是如何做一次呢?请注意,弹出窗口可以显示在任何页面上(如果是当前访问的第一页),而不仅仅是在主页上。
答案 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