Не хочет присваиватся cookies через onclick!

seosniks
На сайте с 13.08.2007
Offline
389
815

Доброй ночки, делаю окно на сайт для вхрослых. Все работает а куку поставить не могу.

<a href='#' style='display:block; width: 100px; text-align: left; text-decoration:none; font-size:14px; font-weight:bold; color:white; background-color: green; padding: 8px; margin: 0px 0px;' onclick='setCookie(\"18_confirm\", 1, expires, \"/\");document.getElementById(\"18_popup_div\").style.display=\"none\";return false;'>GO</a>

Сам код можно глянуть сдесь

Спасибо за помощь.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

Вот это на 100% работает:


<script type="text/javascript">
function setcookie(name, value, expires, path, domain, secure) { // Send a cookie
//
// + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)

expires instanceof Date ? expires = expires.toGMTString() : typeof(expires) == 'number' && (expires = (new Date(+(new Date) + expires * 1e3)).toGMTString());
var r = [name + "=" + escape(value)], s, i;
for(i in s = {expires: expires, path: path, domain: domain}){
s && r.push(i + "=" + s);
}
return secure && r.push("secure"), document.cookie = r.join(";"), true;
}
</script>

<a href="#" style="display:block; width: 100px; text-align: left; text-decoration:none; font-size:14px; font-weight:bold; color:white; background-color: green; padding: 8px; margin: 0px 0px;" onclick="setcookie('18_confirm', 1, '123', '/');">GO</a>

Вот страница на js.ru

Подпись))
дани мапов
На сайте с 06.09.2012
Offline
204
#2

А эта функция объявлена - setCookie ? И надо помнить, что кука будет доступна после перезагрузки страницы.

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
seosniks
На сайте с 13.08.2007
Offline
389
#3

Благодарю вас, завтра попробую

По сути вот код

<script type="text/javascript" src="warning18_russian.js"></script>


файл warning18_russian.js"
<div id='wrap'>&nbsp; </div>

if (2>1)
{
var exp = new Date();
exp.setTime((new Date()).getTime()+100000000000);
expires = exp.toGMTString();
var div = document.createElement('div');
div.innerHTML =
"<div class=stop style='position:fixed; z-index: 100;width:100%; height: 100%; top: 0px; left:0px;' id='18_popup_div'>"
+" <div style='position:relative; width:100%; height:100%'>"
+" <div style='position:absolute; top:0px; left:0px;background-color:#808080; filter:alpha(opacity=70); -moz-opacity: 0.7; opacity: 0.7; z-index:200;width:100%; height:100%'></div>"
+" <div style='position:absolute; top:0px;margin:auto; z-index:300; width: 100%; height:500px; '>"
+" <div style='margin:auto; width:400px;background-color: white; border: solid 1px black; padding: 40px;margin-top:100px'>"
+" Внимание! <br />Вы собираетесь зайти на сайт с материалами для взрослых.<br /> Лицам младше 18 лет вход строго запрещен.<br />Нажимая кнопку \"Продолжить\", Вы подтверждаете, что Вам более 18 лет и Вы согласны просматривать материалы, предназначенные только для взрослых. Вы прочли правила .<br /><font color=red> Если Вам менее 18 лет - пожалуйста, закройте вкладку браузера, чтобы покинуть сайт. </font> "
+" <br/><br/><a href='#' style='display:block; width: 100px; text-align: left; text-decoration:none; font-size:14px; font-weight:bold; color:white; background-color: green; padding: 8px; margin: 0px 0px;' onclick='setCookie(\"18_confirm\", 1, expires, \"/\");document.getElementById(\"18_popup_div\").style.display=\"none\";return false;'>Мне более 18</a> "
+" <div align=right> <noindex><a href='http://yandex.ru/' style='display:block; width: 100px; text-align: right; text-decoration:none; font-size:12px; font-weight:bold; color:white; background-color: red; padding: 8px; margin: 0px 0px;' style.display=\"none\";return false;'>Мне нет 18 лет</a> </noindex></div> "
+" "
+" <a target=_blank href=/warn.htm font-size: 9px;>Предупреждение/Disclaimer</a> </font> </div>"
+" </div>"
+" </div>"
+"</div>";
var wrap = document.getElementById('wrap');
wrap.parentNode.insertBefore(div, wrap);
}
gormarket
На сайте с 29.12.2010
Offline
47
#4

seosniks, Вы вместо значения переменной expires вставляете в код ее имя

Вот что получается в итоге в коде

onclick='setCookie("18_confirm", 1, expires, "/");

а в момент события onclick переменная expires не существует, сюда нужно подставить ее значение в момент формирования кода.

В своем коде вместо кусочка

(\"18_confirm\", 1, expires, \"/\")

вставьте такое

(\"18_confirm\", 1, "+expires+", \"/\")

И может быть еще заключить ее значение в кавычки (это же строка), т.е. так

(\"18_confirm\", 1, \""+expires+"\", \"/\")

В итоге в коде получится что-то такое:

onclick='setCookie("18_confirm", 1, "Sat, 02 Apr 2016 05:21:56 GMT", "/");

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
seosniks
На сайте с 13.08.2007
Offline
389
#5

gormarke, Спасибо Вам огромное за помощь.🍻:2cents:

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий