1

我是一个 JS 新手(从技术上讲,我只是边走边编),所以当你解释事情时,请怜悯并用蜡笔给我画图。

我们有三个独立的站点:

  • store.example.com - 电子商务网站
  • www.example.com/content - 我们的产品网站
  • www.example.com/home - 营销站点(Acquia Cloud 上的 Drupal 7) - 流量是从产品站点传递的代理。Acquia URL 是 example.prod.acquia-sites.com,我们也使用 web.example.com 登录。

带着所有 GDPR 的乐趣,我参加了关于 cookie 的速成课程。下面的脚本在 www.example.com/home 上,将为上面列出的所有三个站点来回设置和读取 cookie,但对于 web.example.com,它显示为“.example.com”设置的 cookie " 但在每次加载页面时都会不断地重新显示横幅。对于 Acquia 域,它不会设置或关闭 cookie。我不想破坏任何工作,但是有没有办法将域指定为“.example.com”,以便它与产品站点一起使用,并在编辑站点时设置/关闭它?

    /* functions for getting and setting cookies */
    function setCookie(c_name,value,exdays){
       var exdate=new Date();
       exdate.setDate(exdate.getDate() + exdays);
       var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
       document.cookie=c_name + "=" + c_value + ";domain=.example.com;path=/";
      }
    function getCookie(c_name){
       var i,x,y,ARRcookies=document.cookie.split(";");
       for (i=0;i<ARRcookies.length;i++){
       x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
       y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
       x=x.replace(/^\s+|\s+$/g,"");
       if (x===c_name){
       return unescape(y);
      }
     }
    }
    jQuery(document).ready(function($){
       function displayCookieAccept(){
          var cookieAccepted = getCookie('cookie-accept');
          if(cookieAccepted !== 't'){
            var cookieBox = $('<div class="cookie-accept"></div>');
            var cookieText = '<p>This site uses cookies. By continuing to browse this site you are agreeing to our use of cookies. <a href="#" id="accept-cookie">Continue</a> or <a href="/home/privacy-policy" id="privacy">Find out more</a>.</p>';
            $(cookieBox).html(cookieText);
            $('body').prepend(cookieBox);
            $(cookieBox).slideDown('fast');
            $('#accept-cookie').click(function(){
                setCookie('cookie-accept', 't', 1825);
                $(cookieBox).hide();
            });         
        }
    }
    displayCookieAccept();
    });
4

0 回答 0