View Full Version : سوال: ایجاد کوکی برای کد جاوای ساده
DJMOKHTAR
سه شنبه 03 شهریور 1394, 22:20 عصر
سلام دوستان
یک کد ساده دارم که صفحه ورودی هست برای وبلاگ که پس از کلیک وارد میشه . ولی من نیاز دارم فقط یک بار برای هر کاربر نمایش داده بشه اما متاسفانه الان هر کلیکی تو بخش های مختلف وبلاگ میکنیم صفحه ولکام نمایش داده میشه
میخواستم اگه لطف کنید طوری تغییرش بدید که با هر باز و بسته کردن مرورگر فقط 1 بار نمایش داده بشه
<div id="first_p" style="text-align: center; margin-top: 5px;"><a onclick="document.getElementById('main_p').style.display = 'block';document.getElementById('first_p').style.d isplay = 'none';" href="#"><img src="www.test.jpg" border="0"></a></div><div id="main_p" style="display: none;">
SCoder
چهارشنبه 04 شهریور 1394, 13:26 عصر
با استفاده از تابع مقابل می توانید یک cookie ایجاد کنید برای هر چند روزی که بخواهید (days) و اگر بخواهید آن cookie را پاک کنید کافی name و value همان cookie را بدهید و به days مقدار 0 بدهید ...
function setCookie(name, value, days) {
var d = new Date();
d.setTime(d.getTime() + (days*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = name + "=" + value + "; " + expires;
}
و تابع getCookie
function getCookie()
{
var cook = document.cookie;
var pairs = cook.split(';');
var nameValObj = {};
for(var i =0;i<pairs.length;i++)
{
var nameVal = pairs[i].split('=');
nameValObj[nameVal[0]] = nameVal[1];
}
return nameValObj;
}
همچنین یک راه دیگر نیز وجود دارد و آن هم این است که از localStorage استفاده کنید بدین صورت که وقتی یک کاربر اولین بار به سایت شما مراجعه کرد یک متغییر به مانند مثال زیر ایجاد کنید...
localStorage.visited = true;
حال در هر بار که کاربر به سایت وارد میشود چک کنید که آیا این متغییر set شده است یا نه اگر set شده بود پس این دومین بازدید است ....
if(localStorage.visited === 'true')
{
//this is second visit
}
برای مطمئن شدن میتوانید هم از localStorage و هم از setCookie استفاده کنید ....
DJMOKHTAR
چهارشنبه 04 شهریور 1394, 13:58 عصر
سلام
ممنون استاد
میشه در قالب مثال ارسال شماره 1 یک نمونه کد اماده قرار بدید ؟ چون من اضافه کردم اما متاسفانه باز هم با هر کلیک صفحه ورود نمایان میشود
SCoder
چهارشنبه 04 شهریور 1394, 23:22 عصر
یه سری function به کدت اضافه کردم که هروقت کاربر روی تصویر کلیک میکنه یک cookie به نام visited برای یک روز به وجود میاد بعد از این تا یک روز هر وقت به اون صفحه سر بزنید فقط همون div با id = main_p نمایش داده میشه می توانید در setCookie تعداد روز های cookie تا انقضا را به عنوان پارامتر سوم تغییر دهید ...
<!doctype html>
<head>
<title>Page</title>
<script>
function setCookie(name,value,days)
{
var d = new Date();
d.setTime(d.getTime()+(24*60*60*1000*days));
var expires = 'expires = '+d.toUTCString();
document.cookie = name+' = '+value+';'+expires;
}
function getCookie()
{
var cook = document.cookie;
var pairs = cook.split(';');
var nameValObj = {};
for(var i =0;i<pairs.length;i++)
{
var nameVal = pairs[i].split('=');
nameValObj[nameVal[0]] = nameVal[1];
}
return nameValObj;
}
function init()
{
var cookies = getCookie();//returns an object
console.log(cookies);
if(!cookies.visited)
{
//do nothing
}
else
{
document.body.removeChild(document.getElementById( 'first_p'));
document.getElementById('main_p').style.display = 'block';
}
}
window.onload = init;
</script>
</head>
<body>
<div id="first_p" style="border:1px solid red;text-align: center; margin-top:5px;width:100px;height:100px;">
<a onclick="document.getElementById('main_p').style.display ='block';document.getElementById('first_p').style. display = 'none';setCookie('visited','true',1);" href="#">
<img src="www.test.jpg" border="0">
</a>
</div>
<div id="main_p" style="border:1px solid blue;display:none;width:250px;height:250px;">
</body>
</html>
DJMOKHTAR
پنج شنبه 05 شهریور 1394, 10:42 صبح
تشکر از وقتی که گذاشتید و لطف شما
متاسفانه این هم همان مشکل ذخیره نشدن کوکی ها را دارد
استاد من یک صفحه ولکام ورودی میخوام که ابتدا یک تصویر فول اسکرین نمایان بشه سپس کلیک و وارد سایت بشه اما فقط یکبار برای هر کاربر . حالا هر کد دیگری هم که شما صلاح میدانید و تست شده قرار بدید هم مشکلی نیست
و اگر طوری باشه که با هر بار بستن مرورگر کوکی حذف بشه که بهتر . من یک کد جدید هم استفاده کردم که با localStorage هست . از لحاظ کوکی بار اول درست کار میکنه اما مشکلش اینه دفعات بعد رو هر صفحه که کلیک میکنم حدود 2 ثانیه اول صفحه خوش امد نمایش داده میشه بعد حذف میشه . میشه یک کد سالم برای صفحه خوش امد گویی طبق localStorage ارائه بدید ؟
SCoder
شنبه 07 شهریور 1394, 00:44 صبح
کدی که من در بالا گذاشتم رو تست کردم و کوکی ها درست کار می کنند
فقط باید دو تغییر ایجاد کنید :
در تگ a باید display ها رو درست کنید چون فاصله دارند (من space هاش رو از بین میبرم و تغییرات رو ذخیره می کنم بازم مثل قبل میشه!!!!)
خودت اینو بریز توی یه فایل و space های اضافی شون رو از بین ببر)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.