Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.11.2009, 21:41
Интересующийся
Отправить личное сообщение для Nushaba Посмотреть профиль Найти все сообщения от Nushaba
 
Регистрация: 17.11.2009
Сообщений: 13

Открытие div блока при первом визите на сайт
Цитата:
Всем привет, назрел вопрос, необходимо сделать так, что бы при заходе на сайт выводилось окно div с текстом и двумя вариантами, либо отрицательно, либо положительно. Ну например вопрос: Вам есть 18 лет? Если нет, то кинет на другой сайт, если да, то div блок закроется и откроет закрытый собою контент сайта. И надо как то заставить этот скрипт не работать постоянно при каждом обновлении страницы, а хотя бы раз в сутки, пусть запоминает по IP или кукисам как то. Я даже не знаю как грамотно сформировать такой запрос в гугле, вот набрёл на ваш сайт случайно, сам в яве увы не прошарен, покапал форум ваш, что то похожее находил но не сильно подходит моим нуждам, там не было запоминания посетителя который ответил положительно, а было просто закрытие div блока...
Это скрипт для предупреждения посетителя о том, что на сайте находится сомнительная информация, для индивидуального просмотра, для просмотра сайта он должен подтвердить своё согласие на просмотр контента сайта.
var Cookie = new Object();
Cookie.set = function(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    }
Cookie.get = function(name) {
  var prefix = name + "=";
  var cookieStartIndex = document.cookie.indexOf(prefix);
  if (cookieStartIndex == -1) return null;
  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
  }
Cookie.del = function(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }
var myVar = null;// просто переменная со значением, для проверки кукисов
myVar = Cookie.get("имя_для_куков");
if (myVar != "1")// проверка на то есть куки или нету, если есть то не выполнять скрипт иначе задается вопрос
{
 var zayti = confirm("Вы точно хотите сюда войти? \n Если нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
 if (zayti){
 Cookie.set("имя_для_куков", "1");
 }
 else
 {location.href = "http://javascript.ru/";}
}


Отдельное спасибо PeaceCoder
Найдите текст "имя_для_куков" (в двух местах) и поменяйте название по желанию, так же в ковычках.

Скрипт ещё раз исправлен и не глючит теперь.

Последний раз редактировалось Nushaba, 23.12.2009 в 21:46.
Ответить с цитированием
  #2 (permalink)  
Старый 18.11.2009, 20:28
Интересующийся
Отправить личное сообщение для Nushaba Посмотреть профиль Найти все сообщения от Nushaba
 
Регистрация: 17.11.2009
Сообщений: 13

Такой цивильный сайт и такая откровенная реклама... Ну так что народ, не кто не поможет скриптом?
Есть простой скрипт:
<script language="JavaScript">
<!-- Begin
var zayti=confirm("Вы точно хотите сюда войти? \nЕсли нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
if (zayti)
history.go(1);
else
location = "http://ссылка.ru/";
// End -->
</script>

Беда в том, что при КАЖДОМ обновлении страницы нужно подтверждать, представляете какой это маразм на ЦМСках? Помогите настроить какое-нибудь скармливание кукисов, при наличае которых этот скрипт не будет больше срабатывать...

Последний раз редактировалось Nushaba, 18.11.2009 в 21:53.
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2009, 18:08
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Твой вопрос затрагивает не только клиента, но и серверную часть...
А вообще тебе в раздел "работа", ибо спецально никто писать не станет (хотя может и найдутся такие)...
Ответить с цитированием
  #4 (permalink)  
Старый 20.11.2009, 09:18
Интересующийся
Отправить личное сообщение для Nushaba Посмотреть профиль Найти все сообщения от Nushaba
 
Регистрация: 17.11.2009
Сообщений: 13

Сообщение от B~Vladi Посмотреть сообщение
Твой вопрос затрагивает не только клиента, но и серверную часть...
А вообще тебе в раздел "работа", ибо спецально никто писать не станет (хотя может и найдутся такие)...
Спасибо, пока до ЗП потерплю, может и сам чего то придумаю.
Ответить с цитированием
  #5 (permalink)  
Старый 17.12.2009, 13:36
Интересующийся
Отправить личное сообщение для Nushaba Посмотреть профиль Найти все сообщения от Nushaba
 
Регистрация: 17.11.2009
Сообщений: 13

Привет всем. Собрал скрипт для сайта, почему то работает ТОЛЬКО в ИЕ. Может кто подсказать что с ним сделать что бы в фф и опере работал, сафари, хроме...
<script language="JavaScript">
<!-- Begin
function getCookie(name) {
    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) {
        offset = cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = cookie.indexOf(";", offset)
            if (end == -1) {
                end = cookie.length;
            }
            setStr = unescape(cookie.substring(offset, end));
        }
    }
    return(setStr);
}

function setCookie(name, value) {
var valueEscaped = escape(value);
var expiresDate = new Date();
expiresDate.setTime(expiresDate.getTime() + 60 * 60 * 1000); // срок - 1 год, но его можно изменить
var expires = expiresDate.toGMTString();
var newCookie = name + "=" + valueEscaped + "; path=/; expires=" + expires;
if (valueEscaped.length <= 4000) document.cookie = newCookie + ";";
}


var myVar = null;// просто переменная со значением, для проверки кукисов
myVar = getCookie("sitecookie");
if (myVar == "1")// проверка на то есть куки или нету, если есть то переход без вопроса иначе задается вопрос
{
history.go(1);
}
else
{
 var zayti = confirm("Вы точно хотите сюда войти? \n Если нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
 if (zayti){
 history.go(1);
 setCookie("sitecookie", "1");
 };
 else
 {location = "http://ya.ru/";}
}
// End -->
</script>

Суть скрипта проверить наличие куков, если они есть, показать сайт, если их нету, задать вопрос, согласен ли посетитель просматривать сайт, если нет, открывает посетителю яндекс, если да, записывает ему куки.
Ответить с цитированием
  #6 (permalink)  
Старый 17.12.2009, 14:33
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

В лом разбираться и вспоминать как работать с куками. вот те код вроде должно работать
// name - имя cookie
// value - значение cookie
// [expires] - дата окончания действия cookie (по умолчанию - до конца сессии)
// [path] - путь, для которого cookie действительно (по умолчанию - документ, в котором значение было установлено)
// [domain] - домен, для которого cookie действительно (по умолчанию - домен, в котором значение было установлено)
// [secure] - логическое значение, показывающее требуется ли защищенная передача значения cookie

var Cookie = new Object();
Cookie.set = function (name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    }
Cookie.get = function (name) {
  var prefix = name + "=";
  var cookieStartIndex = document.cookie.indexOf(prefix);
  if (cookieStartIndex == -1) return null;
  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
  }
Cookie.del = function (name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }
Ответить с цитированием
  #7 (permalink)  
Старый 17.12.2009, 15:30
Интересующийся
Отправить личное сообщение для Nushaba Посмотреть профиль Найти все сообщения от Nushaba
 
Регистрация: 17.11.2009
Сообщений: 13

PeaceCoder, сделал как у тебя, получил:
<script language="JavaScript">
<!-- Begin
var Cookie = new Object();
Cookie.set = function (name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    }
Cookie.get = function (name) {
  var prefix = name + "=";
  var cookieStartIndex = document.cookie.indexOf(prefix);
  if (cookieStartIndex == -1) return null;
  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
  }
Cookie.del = function (name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }


var myVar = null;// просто переменная со значением, для проверки кукисов
myVar = Cookie.get("sitecookie");
if (myVar == "1")// проверка на то есть куки или нету, если есть то переход без вопроса иначе задается вопрос
{
history.go(1);
}
else
{
 var zayti = confirm("Вы точно хотите сюда войти? \n Если нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
 if (zayti){
 history.go(1);
 Cookie.set("sitecookie", "1");
 };
 else
 {location = "http://ya.ru/";}
}
// End -->
</script>


Но по прежнему видит только осёл скрипт, разумеется скрипты включены, куки сброшены, даже в сафари делал полный сброс и бестолку. Есть ещё какие идеи народ?

Цитата:
Суть скрипта проверить наличие куков, если они есть, показать сайт, если их нету, задать вопрос, согласен ли посетитель просматривать сайт, если нет, открывает посетителю яндекс, если да, записывает ему куки, пустить на сайт.
Фишка в том, что даже при отсутствии куков не появляется вопроса, желает ли посетитель попасть на сайт или нет, так что всё это похоже на то, что куки не создаются для сайта вовсе. Или где символ упустил?

Последний раз редактировалось Nushaba, 17.12.2009 в 17:03.
Ответить с цитированием
  #8 (permalink)  
Старый 17.12.2009, 20:03
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

во первых поменяй местами.
Cookie.set("sitecookie", "1");
  history.go(1);


Во вторых если и так задаваться не будет вопрос, значит исправишь
if (myVar)

больше не знаю в чем трабла. эти скрипты куков должны работать на всех браузерах. да и по алгоритму в любом случае должен быть запрос на переход если ошибка в куках.
еще исправь везде
function ( на function(
че там закрался пробел...
<script type='text/javascript'>

Последний раз редактировалось PeaceCoder, 17.12.2009 в 20:09.
Ответить с цитированием
  #9 (permalink)  
Старый 18.12.2009, 09:47
Интересующийся
Отправить личное сообщение для Nushaba Посмотреть профиль Найти все сообщения от Nushaba
 
Регистрация: 17.11.2009
Сообщений: 13

var Cookie = new Object();
Cookie.set = function(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    }
Cookie.get = function(name) {
  var prefix = name + "=";
  var cookieStartIndex = document.cookie.indexOf(prefix);
  if (cookieStartIndex == -1) return null;
  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
  }
Cookie.del = function(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }


var myVar = null;// просто переменная со значением, для проверки кукисов
myVar = Cookie.get("sitecookie");
if (myVar)// проверка на то есть куки или нету, если есть то переход без вопроса иначе задается вопрос
{
history.go(1);
}
else
{
 var zayti = confirm("Вы точно хотите сюда войти? \n Если нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
 if (zayti){
 Cookie.set("sitecookie", "1");
  history.go(1);
 };
 else
 {location = "http://ya.ru/";}
}

Вот конечный результат, но всё так же не срабатывает нигде, кроме осла, вообще ппц...
Ответить с цитированием
  #10 (permalink)  
Старый 18.12.2009, 14:14
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Как я и заподозрил на свежую голову увидел.

{
 var zayti = confirm("Вы точно хотите сюда войти? \n Если нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
 if (zayti){
 Cookie.set("sitecookie", "1");
  history.go(1);
 }
 else
 {location.href = "http://ya.ru/";}
}

";" перед else нельзя. это не php + location.href
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 18:31
Не срабатывает hover при использовании в div IE 6.0 AlexMak (X)HTML/CSS 5 14.05.2009 18:26
Динамическое изменение размеров блока при наведении мыши! Viktor ------- Общие вопросы Javascript 7 05.05.2009 19:13
Отрыть DIV блок при переходе с другой страницы BuTbka Общие вопросы Javascript 7 08.04.2009 22:59
При первом клике список не раскрывается. lancer Элементы интерфейса 1 30.03.2008 17:24