Открытие 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, время: 07:25. |