Открытие 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 |
PeaceCoder, спасибо тебе, как я запарился с этим скриптом, не знаю js в принципе! Помогли твои последние советы, всё работает. Человеческое спасибо что тратил время и разбирался в косяках моих! Теперь дети на порносайт не попадут )
P.S. Хочу что бы скрипт стал общедоступным для всех, аналога в интернете ему я не видел. Поэтому в теме я чуток пофлужу поисковыми фразами так сказать, что бы можно было найти его у вас, поменяйте название темы, что бы было более понятно что за скрипт тут, хотя это может и не обязательно. Поисковые фразы: Скрипт подтверждения, соглашения, согласия входа на сайт, скрипт для порносайта, ссора скрипт, подтверждение возраста, правил сайта, кукисы, куки, cookie. P.P.S Офицально и впервые скрипт был создан именно на этом сайте 15.12.2009 Считается хорошим тоном оставлять копирайты. Финальная версия скрипта, так же обновлена в первом посту: 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/";} } Найдите текст "имя_для_куков" (в двух местах) и поменяйте название по желанию, так же в ковычках. |
Цитата:
Цитата:
|
Цитата:
А про то, что дети не попадут на порносайт конечно же шутка ) Но хотя бы для родителей предупреждение, что бы детей вон от экрана монитора ) Конечно неадекваты не оценят скрипт, ибо рекламу свою плавающую с жопой в экран перед ним не повесишь ) Но плевал я на неадекватов, я за чистый интернет! :) |
Цитата:
Если же базовые знания (не JS, а хотя бы программирования вообще) имеются, то написать такой скрипт несложно и без этой темы. Всего-то надо нагуглить функции установки кук и функцию confirm. |
Цитата:
|
тише тише.. дети спят не кричи ты так =)
П.С. а колай(коляй?) неплохой парень. сегодня тоже с ним немного поругались, но пришли к решению... к тому же узнал что он является разработчиком(со-?) extJS, что несомненно говорит об его опыте работы с js, т.к. эта библиотека хороша по возможностям. |
Nushaba,
извини, ниасилил :) Цитата:
|
Цитата:
|
x-yuri , да это по любому, но вариант вызова такого окна один, что там по другому то делать? ) Если только текст написать свой, по кнопке нет отправлять на другой сайт и так далее? ) Это уже даже не программист сможет. К стати по вашему форуму я искал решения, темы похожие, но они либо не завершены,либо совсем не то, и даже близко не похожи. Ну а если не устроит их такой скрипт, пусть делают через jquery, в интернете полно мануалов, или спрашивают у вас уже ) Я один из таких, кто спросил :) Правда мне кроме этого варианта никакие больше не подходят, у меня на сайте флеш на страницах и jquery не может перед ними встать, получается не красиво, дело даже не в z-index, я хз почему так, но если честно и не искал особо, ибо всё равно вариант не понравился тот.
PeaceCoder, ок, Kolyaj свой парень ;) |
Цитата:
http://kolyaj.moikrug.ru/ Цитата:
|
Цитата:
Разработка клиентского интерфейса средствами ExtJS. |
ну знач написать надо
Разработка клиентского интерфейса (на ExtJS) или Разработка клиентского интерфейса средствами ExtJS. непонятно.... спилберг! |
ну ты пока первый, кто неправильно понял (;
|
Юзал скрипт, наткнулся на недоработку, теперь с этим скриптом у меня нету возможности вернуться назад на одну страницу, по нажатии кнопки в браузере
![]() Происходит редирект моментальный, происходит он потому, что я так ему сказал ) При наличии куков скрипт работает на пропуск на страницу (редирект), которую я хотел посетить. Но в том то и беда, этот скрипт теперь очень неоднозначно реагирует на кнопку "возврат", так как скрипт работает на каждой странице, то появление окошка с вопросом считается очередной страницей и по кнопке назад я попадаю на страницу срабатывания скрипта, где по проверке наличия куков он меня отправляет на запрашиваемую страницу, которой считается та страница, откуда я хотел уйти... В принципе решить проблему можно переписав скрипт немного, надо это: if (myVar == 1)// проверка на то есть куки или нету, если есть то переход без вопроса иначе задается вопрос { history.go(1); } переписать на остановку скрипта при наличии куков. if (myVar == 1)// проверка на то есть куки или нету, если есть то остановить (не выполнять) скрипт иначе задается вопрос { стоп скрипт; } Видимо нужно избавиться от хистори, подскажите какое решение плиз. |
Что то снова нету желающих помочь :) Попробуйте только сказать что это элементарно )
В общем избавился я от хистори, получилось следующее: if (myVar != "1")// проверка на то есть куки или нету, если есть то не выполнять скрипт иначе задается вопрос { var zayti = confirm("Вы точно хотите сюда войти? \n Если нет, нажмите ОТМЕНИТЬ и Вы перейдёте туда, куда я вас послал."); if (zayti){ Cookie.set("имя_для_куков", "1"); } else {location.href = "http://javascript.ru/";} } Скрипт работоспособный, не глючный кажется. Первый пост обновил. |
Парни, а кто знает как вместо сообщения в этом скрипте из первого поста вывести div с 2 ссылками? По одной будет разрешаться заходить на сайт, а по другой будет переход на поисковик (переход сделать я сама смогу )))
А то сообщение некрасиво смотрится, а div можно ведь украсить ))) |
<!DOCTYPE html> <html> <head> <style> #fillBackground { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #fff; } </style> </head> <body> <div id="fillBackground"> <a id="enter_site" href="">Зайти</a><br/> <a id="exit_site" href="">Не Зайти</a> </div> <div>Сомнительная инфа :)</div> <script type="text/javascript"> var 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" : ""); }, 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)); }, del: function(name, path, domain) { if ( this.get( name ) ) { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; } } } if ( Cookie.get("test") != "1" ) { document.getElementById( 'fillBackground' ).style.display = 'block'; } document.getElementById( 'enter_site' ).onclick = function() { Cookie.set("test", "1"); document.getElementById( 'fillBackground' ).style.display = 'none'; return false; } document.getElementById( 'exit_site' ).onclick = function() { location.href = "http://javascript.ru/"; return false; } </script> </body> </html> |
devote, спасибочки тебе! Цем-цем
|
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/";} } использовал это код. Не подскажете, как его изменить, чтобы срок действия кука был 1 день, с момента его получения? |
Часовой пояс GMT +3, время: 13:49. |