我想知道如何在第一次加载页面时加载或显示广告的div,但每次刷新页面时都会隐藏它?
我只有使用Jquery加载div的代码,但在刷新页面后不知道如何隐藏它:
$(document).ready(function() {
$(".referralProgram").fadeIn("slow");
});
答案 0 :(得分:5)
使用cookie:
$(document).ready(function() {
if (!readCookie("adSeen")) {
$(".referralProgram").fadeIn("slow");
createCookie("adSeen", "1", 1000);
}
});
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=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
来自quirksmode.org的Cookie函数。
编辑:由于有很多人正在讨论如果禁用cookie,如何处理这个问题,应该指出服务器会话实现依赖于cookie或URL中的会话标识符。充其量只要会话标识符位于网址中,您就只能阻止为同一用户显示广告。返回主页sans会话ID将重新显示广告。此外,如果用户共享URL,则粗心的实现(甚至一些仔细的实现)可能会导致其他用户误报。 localStorage
解决方案无法在大多数(如果不是全部)浏览器中禁用Cookie。
答案 1 :(得分:1)
您需要一种方法来跟踪广告何时向用户展示。在广告创建时设置Cookie并在再次显示之前检查它?
答案 2 :(得分:0)
您可以使用客户端持久存储来标记用户已经看过这个。以下是3个选项:
1)Cookies - 在访问用户计算机上设置cookie。
2)HTML5存储 - 您可以将标志存储在浏览器(仅限HTML5)存储中。
3)服务器会话 - 如果您正在使用中间件(PHP,ASP.NET,Java等),您可以通过会话变量进行跟踪(这是一个cookie的抽象,并且只是像创建它一样持久化定)。答案 3 :(得分:0)
我不确定您的服务器端实现是什么样的,但如果您担心cookie被关闭,您可以使用会话状态在服务器端处理此问题。