Помогите в код встроить хранение Cookies

Тема в разделе "JavaScript", создана пользователем saymong, 26 сен 2013.

Модераторы: ZiX
  1. saymong

    saymong

    Регистр.:
    29 сен 2010
    Сообщения:
    531
    Симпатии:
    373
    Здравствуйте.
    Имею вот такой код
    Код:
    <script>
    var am_sb_norm;function am_gc(name){if(document.cookie.length>0){start=document.cookie.indexOf(name+"=");if(start!=-1){start=start+name.length+1;end=document.cookie.indexOf(";",start);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(start,end))}}return""}function am_sc(name,val,endh){var exdate=new Date;endh=exdate.getHours()+endh;exdate.setHours(endh);document.cookie=name+"="+escape(val)+(endh==null?"":";expires="+exdate.toGMTString()+";path=/;")}var am_sb_f=0;if(navigator.plugins){if(navigator.plugins["Shockwave Flash"]){am_sb_f=1;}}var am_sb_stf=1;function am_sb_x_show(){if(am_sb_stf==1){document.getElementById('am_sb_panel').style.visibility="visible";}}function am_sb_close(){setTimeout(function(){document.body.removeChild(document.getElementById('am_sb'));am_sb_xn++;am_sc('am_sb_xn',am_sb_xn,18);},1000);}var am_sb_xn=am_gc('am_sb_xn');if(am_sb_xn==""){am_sb_xn=1;}else{am_sb_xn=parseInt(am_sb_xn);}if(am_sb_xn<=1000){var am_sb=document.createElement("div");am_sb.setAttribute("id","am_sb");document.body.appendChild(am_sb);var am_sb_bl=(navigator.language || navigator.systemLanguage || navigator.userLanguage || 'xx').substr(0,2).toLowerCase();var am_sb_date=new Date();document.getElementById('am_sb').innerHTML='<div id="am_sb_w" style="position:fixed;right:0;bottom:0px;z-index:10000;width:300px;height:270px;"><div id="am_sb_panel" style="height:20px;width:100%;visibility:hidden;"><img src="http://mysite.ru/images/panelb.png" width="300px" height="20px" usemap="#amap" border="0"><map name="amap"><area shape="rect" coords="0,0,128,20" href="http://mysite.ru/" target="_blank" alt="mysite.ru" /><area shape="rect" coords="275,0,300,20" onclick="am_sb_close();" title="\u0417\u0430\u043a\u0440\u044b\u0442\u044c" style="cursor:pointer;" /></map></div><div id="amsb_frame" style="height:250px;width:100%;"><object id="amflash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="300" height="250"><param name="movie" value="http://mysite.ru/banners/ban2.swf"><param name="quality" value="high"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"><embed src="http://mysite.ru/banners/ban2.swf" flashvars="targetWindow=_blank" quality="best" width="300" height="250" name="flash_banner" align="center" type="application/x-shockwave-flash" pluginspace="http://www.macromedia.com/go/getflashplayer" wmode="transparent" allowscriptaccess="always"></object></div></div>';setTimeout(am_sb_x_show,7000);}function am_sb_listener(event){switch(event.data){case 'am_sb_x_show':am_sb_stf=1;am_sb_x_show();break;case 'am_sb_x_hide':am_sb_stf=0;document.getElementById('am_sb_panel').style.visibility="hidden";break;case 'am_sb_close':am_sb_stf=0;setTimeout(function(){document.body.removeChild(document.getElementById('am_sb'));},1000);break;case 'am_sb_kill':am_sb_stf=0;am_sb_close();break;case 'am_sb_350':document.getElementById('am_sb_w').style.width="350px";document.getElementById('am_sb_w').style.height="320px";document.getElementById('am_sb_panel').style.width="350px";document.getElementById('am_sb_panel').innerHTML="<img src=\"http://b.am11.ru/be/be3dacadc376a90.png\" width=\"350px\" height=\"20px\" usemap=\"#amap\" border=\"0\"><map name=\"amap\"><area shape=\"rect\" coords=\"0,0,128,20\" href=\"http://advmaker.ru/\" target=\"_blank\" alt=\"Advmaker.ru\" /><area shape=\"rect\" coords=\"325,0,350,20\" onclick=\"am_sb_close();\" title=\"\u0417\u0430\u043a\u0440\u044b\u0442\u044c\" style=\"cursor:pointer;\" /></map>";document.getElementById('amsb_frame').style.width="350px";document.getElementById('amsb_frame').style.height="300px";document.getElementById('amfr1').style.width="350px";document.getElementById('amfr1').style.height="300px";break;}}if(window.addEventListener){window.addEventListener("message",am_sb_listener,false);}document.getElementById('am_sb').onmouseover=function(e){am_sb_switcher=0;};document.getElementById('am_sb').onmouseout=function(e){am_sb_switcher=1;};function onBlur(e){window.document.getElementById('amfr1').contentWindow.postMessage("deactivate","*");};function onFocus(e){window.document.getElementById('amfr1').contentWindow.postMessage("activate","*");};function onCheckMove(e){window.document.getElementById('amfr1').contentWindow.postMessage("activate","*");window.removeEventListener("mousemove",onCheckMove,false);};if('\v'!='v'){window.addEventListener("focus",onFocus,false);window.addEventListener("blur",onBlur,false);window.addEventListener("mousemove",onCheckMove,false);}
    </script>
    Это код всплывающего баннера, с кнопкой закрыть (close).
    Скрипт работает, баннер закрывается, НО, он не сохраняет в куки, что его закрыли и при переходе на следующую страницу, появляется снова.

    Помогите настроить его так, чтобы он сохранял куки на 12 часов о том, что его закрыли...
    Заранее благодарю....
     
    Dead23Angel и FedorMaxx нравится это.
  2. antiterror

    antiterror xProgramming

    Регистр.:
    22 авг 2007
    Сообщения:
    344
    Симпатии:
    135
    saymong если используешь jquery.cookie то можешь использовать вот это:

    HTML:
    
    <script type="text/javascript">
       $(document).ready(function(){
         if( $.cookie("COOKIENAME") != "1" ){
        
           $("div#show_this_div_id").css({visibility:"visible"});
           /*
                Сюда добавить код, типо если нажимаешь на ЗАКРЫТЬ то вызываем функцию setCurrentCookie()
          */
        
         }
       });
       function setCurrentCookie(){
         var datum = new Date();
         datum.setTime(datum.getTime()+(720*60*1000));
         $.cookie("COOKIENAME",1,{expires:datum});
       };
    </script>
    
    куки создаётся на 12 часов.
     
    FedorMaxx, saymong и yurijmi нравится это.
  3. saymong

    saymong

    Регистр.:
    29 сен 2010
    Сообщения:
    531
    Симпатии:
    373
    Перепробовал десятки вариантов с данным советом, но ничего не получается...
    В jquery НУБ. Помогите пожалуйста настроить,чтобы заработало.
     
    FedorMaxx нравится это.
  4. vipTelnet

    vipTelnet Постоялец

    Регистр.:
    14 янв 2013
    Сообщения:
    135
    Симпатии:
    11
    Во первых если хотите что б Вам помогли выкладываете код в удобо читаемом виде так
    Код:
    var am_sb_norm;
    
    function am_gc(name) {
        if (document.cookie.length > 0) {
            start = document.cookie.indexOf(name + "=");
            if (start != -1) {
                start = start + name.length + 1;
                end = document.cookie.indexOf(";", start);
                if (end == -1) end = document.cookie.length;
                return unescape(document.cookie.substring(start, end))
            }
        }
        return ""
    }
    
    function am_sc(name, val, endh) {
        var exdate = new Date;
        endh = exdate.getHours() + endh;
        exdate.setHours(endh);
        document.cookie = name + "=" + escape(val) + (endh == null ? "" : ";expires=" + exdate.toGMTString() + ";path=/;")
    }
    var am_sb_f = 0;
    if (navigator.plugins) {
        if (navigator.plugins["Shockwave Flash"]) {
            am_sb_f = 1;
        }
    }
    var am_sb_stf = 1;
    
    function am_sb_x_show() {
        if (am_sb_stf == 1) {
            document.getElementById('am_sb_panel').style.visibility = "visible";
        }
    }
    
    function am_sb_close() {
        setTimeout(function () {
            document.body.removeChild(document.getElementById('am_sb'));
            am_sb_xn++;
            am_sc('am_sb_xn', am_sb_xn, 18);
        }, 1000);
    }
    var am_sb_xn = am_gc('am_sb_xn');
    if (am_sb_xn == "") {
        am_sb_xn = 1;
    } else {
        am_sb_xn = parseInt(am_sb_xn);
    } if (am_sb_xn <= 1000) {
        var am_sb = document.createElement("div");
        am_sb.setAttribute("id", "am_sb");
        document.body.appendChild(am_sb);
        var am_sb_bl = (navigator.language || navigator.systemLanguage || navigator.userLanguage || 'xx').substr(0, 2).toLowerCase();
        var am_sb_date = new Date();
        document.getElementById('am_sb').innerHTML = '<div id="am_sb_w" style="position:fixed;right:0;bottom:0px;z-index:10000;width:300px;height:270px;"><div id="am_sb_panel" style="height:20px;width:100%;visibility:hidden;"><img src="http://mysite.ru/images/panelb.png" width="300px" height="20px" usemap="#amap" border="0"><map name="amap"><area shape="rect" coords="0,0,128,20" href="http://mysite.ru/" target="_blank" alt="mysite.ru" /><area shape="rect" coords="275,0,300,20" onclick="am_sb_close();" title="\u0417\u0430\u043a\u0440\u044b\u0442\u044c" style="cursor:pointer;" /></map></div><div id="amsb_frame" style="height:250px;width:100%;"><object id="amflash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="300" height="250"><param name="movie" value="http://mysite.ru/banners/ban2.swf"><param name="quality" value="high"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"><embed src="http://mysite.ru/banners/ban2.swf" flashvars="targetWindow=_blank" quality="best" width="300" height="250" name="flash_banner" align="center" type="application/x-shockwave-flash" pluginspace="http://www.macromedia.com/go/getflashplayer" wmode="transparent" allowscriptaccess="always"></object></div></div>';
        setTimeout(am_sb_x_show, 7000);
    }
    
    function am_sb_listener(event) {
        switch (event.data) {
        case 'am_sb_x_show':
            am_sb_stf = 1;
            am_sb_x_show();
            break;
        case 'am_sb_x_hide':
            am_sb_stf = 0;
            document.getElementById('am_sb_panel').style.visibility = "hidden";
            break;
        case 'am_sb_close':
            am_sb_stf = 0;
            setTimeout(function () {
                document.body.removeChild(document.getElementById('am_sb'));
            }, 1000);
            break;
        case 'am_sb_kill':
            am_sb_stf = 0;
            am_sb_close();
            break;
        case 'am_sb_350':
            document.getElementById('am_sb_w').style.width = "350px";
            document.getElementById('am_sb_w').style.height = "320px";
            document.getElementById('am_sb_panel').style.width = "350px";
            document.getElementById('am_sb_panel').innerHTML = "<img src=\"http://b.am11.ru/be/be3dacadc376a90.png\" width=\"350px\" height=\"20px\" usemap=\"#amap\" border=\"0\"><map name=\"amap\"><area shape=\"rect\" coords=\"0,0,128,20\" href=\"http://advmaker.ru/\" target=\"_blank\" alt=\"Advmaker.ru\" /><area shape=\"rect\" coords=\"325,0,350,20\" onclick=\"am_sb_close();\" title=\"\u0417\u0430\u043a\u0440\u044b\u0442\u044c\" style=\"cursor:pointer;\" /></map>";
            document.getElementById('amsb_frame').style.width = "350px";
            document.getElementById('amsb_frame').style.height = "300px";
            document.getElementById('amfr1').style.width = "350px";
            document.getElementById('amfr1').style.height = "300px";
            break;
        }
    }
    if (window.addEventListener) {
        window.addEventListener("message", am_sb_listener, false);
    }
    document.getElementById('am_sb').onmouseover = function (e) {
        am_sb_switcher = 0;
    };
    document.getElementById('am_sb').onmouseout = function (e) {
        am_sb_switcher = 1;
    };
    
    function onBlur(e) {
        window.document.getElementById('amfr1').contentWindow.postMessage("deactivate", "*");
    };
    
    function onFocus(e) {
        window.document.getElementById('amfr1').contentWindow.postMessage("activate", "*");
    };
    
    function onCheckMove(e) {
        window.document.getElementById('amfr1').contentWindow.postMessage("activate", "*");
        window.removeEventListener("mousemove", onCheckMove, false);
    };
    if ('\v' != 'v') {
        window.addEventListener("focus", onFocus, false);
        window.addEventListener("blur", onBlur, false);
        window.addEventListener("mousemove", onCheckMove, false);
    }
    а не 1 строчкой,
    тут люди смотрят а не машины, которым все равно как обрабатывать
    Во вторых пытался запустить Ваш код в браузере
    Экран пустой а в консоле куча ошибок, связанных с тем Вы не удосужились предоставить HTML код, а считать его из Вашего компа, у меня не получается :)
    Сделайте лучше архив всего что у Вас там связано с этой страницей и выложите
     

    Вложения:

    • 8.jpg
      8.jpg
      Размер файла:
      140,2 КБ
      Просмотров:
      5
    antiterror нравится это.