我是一个 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();
});