Открытие 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 Найдите текст "имя_для_куков" (в двух местах) и поменяйте название по желанию, так же в ковычках. Скрипт ещё раз исправлен и не глючит теперь. |
Такой цивильный сайт и такая откровенная реклама... Ну так что народ, не кто не поможет скриптом?
Есть простой скрипт:
<script language="JavaScript">
<!-- Begin
var zayti=confirm("Вы точно хотите сюда войти? \nЕсли нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
if (zayti)
history.go(1);
else
location = "http://ссылка.ru/";
// End -->
</script>
Беда в том, что при КАЖДОМ обновлении страницы нужно подтверждать, представляете какой это маразм на ЦМСках? Помогите настроить какое-нибудь скармливание кукисов, при наличае которых этот скрипт не будет больше срабатывать... |
Твой вопрос затрагивает не только клиента, но и серверную часть...
А вообще тебе в раздел "работа", ибо спецально никто писать не станет (хотя может и найдутся такие:))... |
Цитата:
|
Привет всем. Собрал скрипт для сайта, почему то работает ТОЛЬКО в ИЕ. Может кто подсказать что с ним сделать что бы в фф и опере работал, сафари, хроме...
<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>
Суть скрипта проверить наличие куков, если они есть, показать сайт, если их нету, задать вопрос, согласен ли посетитель просматривать сайт, если нет, открывает посетителю яндекс, если да, записывает ему куки. |
В лом разбираться и вспоминать как работать с куками. вот те код вроде должно работать
// 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";
}
}
|
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>
Но по прежнему видит только осёл скрипт, разумеется скрипты включены, куки сброшены, даже в сафари делал полный сброс и бестолку. Есть ещё какие идеи народ? Цитата:
|
во первых поменяй местами.
Cookie.set("sitecookie", "1");
history.go(1);
Во вторых если и так задаваться не будет вопрос, значит исправишь if (myVar) больше не знаю в чем трабла. эти скрипты куков должны работать на всех браузерах. да и по алгоритму в любом случае должен быть запрос на переход если ошибка в куках. еще исправь везде function ( на function(че там закрался пробел... <script type='text/javascript'> |
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/";}
}
Вот конечный результат, но всё так же не срабатывает нигде, кроме осла, вообще ппц... |
Как я и заподозрил на свежую голову увидел.
{
var zayti = confirm("Вы точно хотите сюда войти? \n Если нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал.");
if (zayti){
Cookie.set("sitecookie", "1");
history.go(1);
}
else
{location.href = "http://ya.ru/";}
}
";" перед else нельзя. это не php + location.href |
| Часовой пояс GMT +3, время: 23:33. |