PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
JoyStick
Отправлено: 13 Января, 2012 - 10:45:43
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Собственно такая проблема, есть скирипт на попап, все работает, все клево, но есть проблемка, он записывает в куки значение 1, и потом проверяет если оно равно 1, то окно не появляется. Так вот суть проблемы в том, что когда браузер закрываешь, то оно не сохр куки, так как не стоит срок их действия. Собственно вопрос, как выставить время хранения куки.
Вот скрипт
CODE (
javascript ):
скопировать код в буфер обмена
<script type = "text/javascript" >
var block_id = '#adSite' ;
var top_offset = 100 ;
var tid = null ;
function setCookie( name , value, expires, path, domain, secure) {
document.cookie = name + "=" + escape( value) +
( ( expires) ? "; expires=" + expires : "" ) +
( ( path) ? "; path=" + path : "" ) +
( ( domain) ? "; domain=" + domain : "navigatorway.com" ) +
( ( secure) ? "; secure" : "" ) ;
}
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 blockPop( ) {
$( block_id) .slideUp ( "normal" ) ;
$( window) .unbind ( "scroll" ) ;
setCookie( 'pop' , '1' ) ;
}
document.onkeypress = func;
function func( event) {
if ( window.event ) event = window.event ;
var key = event.keyCode ? event.keyCode : event.which ? event.which : null ;
if ( ( event.ctrlKey ) && ( ( key == 0xA) || ( key == 0xD) ) ) {
setCookie( 'pop' , '' ) ;
showPop( ) ;
}
}
function showPop( ) {
var pop = getCookie( 'pop' ) ;
if ( pop) return ;
setTimeout( function ( ) {
var win_scrl = $( document) .scrollTop ( ) ;
var top = parseInt( top_offset + win_scrl) ;
$( block_id) .css ( 'top' , top + 'px' ) .slideDown ( "normal" , function ( ) {
$( block_id + ' #close_bnt' ) .unbind ( "click" ) .click ( function ( ) {
blockPop( ) ;
} ) ;
$( window) .scroll ( function ( ) {
win_scrl = $( document) .scrollTop ( ) ;
top = parseInt( top_offset + win_scrl) ;
$( block_id) .css ( 'top' , top + 'px' ) ;
} ) ;
} ) ;
} , 15000) ;
}
$( document) .ready ( function ( ) {
showPop( ) ;
} ) ;
</script>
armancho7777777
Отправлено: 13 Января, 2012 - 11:21:46
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011
Откуда: Москва
Помог: 221 раз(а)
У Вас подключена jQuery?
Если да, могу предложить маленький плагин jquery.cookie.js
Работа с ним :
CODE (
javascript ):
скопировать код в буфер обмена
$.cookie ( "the_cookie" , "the_value" , {
expires: 7 , // Время жизни в днях
path: "/" , // Видимость для дирректорий
domain: "jquery.com" , // Видимость для домена
secure: true // Безопасность
} ) ;
Удаление:
(Отредактировано автором: 13 Января, 2012 - 21:44:55)
JoyStick
Отправлено: 13 Января, 2012 - 11:31:35
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
armancho7777777 пишет: У Вас подключена jQuery?
Если да, могу предложить маленький плагин jquery.cookie.js
Работа с ним :
Да подкл, но что то все равно не работает...
JoyStick
Отправлено: 13 Января, 2012 - 12:35:38
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Zuldek пишет: уберите параметр expires
либо укажите в нем время хранения куки
http://php.su/functions/?setcookie
спс, разобрался)
armancho7777777
Отправлено: 13 Января, 2012 - 14:08:10
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011
Откуда: Москва
Помог: 221 раз(а)
JoyStick пишет: Да подкл, но что то все равно не работает...
Так вы сначало подключите плагин jquery.cookie.js))
И, кстати, он короче вашего кода в 2 раза)
CODE (
javascript ):
скопировать код в буфер обмена
jQuery.cookie = function ( name , value, options) {
if ( typeof value != 'undefined' ) {
options = options || { } ;
if ( value === null ) {
value = '' ;
options.expires = - 1 ;
}
var expires = '' ;
if ( options.expires && ( typeof options.expires == 'number' || options.expires .toUTCString ) ) {
var date;
if ( typeof options.expires == 'number' ) {
date = new Date( ) ;
date.setTime ( date.getTime ( ) + ( options.expires * 24 * 60 * 60 * 1000) ) ;
} else {
date = options.expires ;
}
expires = '; expires=' + date.toUTCString ( ) ;
}
var path = options.path ? '; path=' + ( options.path ) : '' ;
var domain = options.domain ? '; domain=' + ( options.domain ) : '' ;
var secure = options.secure ? '; secure' : '' ;
document.cookie = [ name , '=' , encodeURIComponent( value) , expires, path, domain, secure] .join ( '' ) ;
} else {
var cookieValue = null ;
if ( document.cookie && document.cookie != '' ) {
var cookies = document.cookie .split ( ';' ) ;
for ( var i = 0 ; i < cookies.length ; i++ ) {
var cookie = jQuery.trim ( cookies[ i] ) ;
if ( cookie.substring ( 0, name .length + 1) == ( name + '=' ) ) {
cookieValue = decodeURIComponent( cookie.substring ( name .length + 1) ) ;
break ;
}
}
}
return cookieValue;
}
} ;
(Отредактировано автором: 13 Января, 2012 - 14:15:41)
JoyStick
Отправлено: 13 Января, 2012 - 15:20:05
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
CODE (
javascript ):
скопировать код в буфер обмена
function blockPop( ) {
$( block_id) .slideUp ( "normal" ) ;
$( window) .unbind ( "scroll" ) ;
setCookie( 'pop' , '1' , [ color= red] '1-Jan-13 01:12:40 GMT' [ / color] ) ;
Вот добавил, то что выделено цветом, все гуд, НО в ИЕ не работает... Вылетает окно постоянно...
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB