在解决动态切换皮肤的子域名Cookie保存问题过程中收集的一些参考资料
昨天对自己的Blog添加动态更换皮肤功能时,还有一个问题没解决,就是子域名共享Cookie。例如我访问Blog的子域名是:fengmk2.cnblogs.com, 而页面很多链接的是在www.cnblogs.com/fengmk2/下进行访问的,而皮肤的设置保存在cookie中,导致访问两域名时,皮肤显示不同。今天搜索了一下博客园,发现Dudu已经给出了完全的解决方法。
解决方法:"将cookie关联的域设置为".domain.ext", 博客园的设置就是.cnblogs.com。"
我使用jQuery的cookie插件,修改相应的操作就解决了。
1. 关于二级域名Cookie的问题及解决方法
2. copy一篇文章,主要看看 cookie 的 path 和 domain
3. 如何在本机上开发支持二级域名的.NET系统
4. 在Forms验证模式下,实现多个站点(SubDomain相同)共享同一用户登录状态
解决方法:"将cookie关联的域设置为".domain.ext", 博客园的设置就是.cnblogs.com。"
我使用jQuery的cookie插件,修改相应的操作就解决了。
function switchStylestyle(stylename)
{
$('link[@rel*=style][@title]').each(function(i)
{
this.disabled = true;
if (this.getAttribute('title') == stylename) {
this.disabled = false;
}
});
$.cookie('skinstyle', stylename, {expires: 356, domain: '.cnblogs.com', path: '/'});
}
$(document).ready(function() {
//动态更换皮肤
$("#navbar").children().append("<li><a class='styleswitch' rel='MainCss' href='#'>原版皮肤</a></li><li><a class='styleswitch' rel='MK2Css' href='#'>当前皮肤</a></li>");
//$("#navbar ul li a").eq(1).attr({href: "/fengmk2/"});
$('.styleswitch').click(function()
{
switchStylestyle($(this).attr("rel"));
});
var c = $.cookie('skinstyle');//alert(document.cookie);
if(c) switchStylestyle(c);
});
$(document).ready(function() {
//添加文摘样式和子标题样式
$(".post > p").addClass("entry");
$("#title > div").addClass("subTitle");
//搜索栏
var search = $("#q").parent().parent().addClass("search");
search.prev().hide();
$("#q").css("width","").after("<br />");
$("#leftmenu").prepend(search);
//日期
$(".CalNextPrev > a").css("color", "");
var calTable = $(".Cal").eq(0);
calTable.after("<table id='calendar'>" + calTable.html() + "</table>");
calTable.hide();
//根据input类型,添加相应的样式
$("input[@type=submit]").addClass("submit");
$("input[@type=text]").addClass("text");
//添加版权
$("#footer #footer").append(". Design by <a href='http://www.freecsstemplates.org/'>Free CSS Templates</a>(<a href='http://www.freecsstemplates.org/preview/stargazer'>stargazer</a>), adapted by <a href='http://fengmk2.cnblogs.com'>MK2</a>.");
});
{
$('link[@rel*=style][@title]').each(function(i)
{
this.disabled = true;
if (this.getAttribute('title') == stylename) {
this.disabled = false;
}
});
$.cookie('skinstyle', stylename, {expires: 356, domain: '.cnblogs.com', path: '/'});
}
$(document).ready(function() {
//动态更换皮肤
$("#navbar").children().append("<li><a class='styleswitch' rel='MainCss' href='#'>原版皮肤</a></li><li><a class='styleswitch' rel='MK2Css' href='#'>当前皮肤</a></li>");
//$("#navbar ul li a").eq(1).attr({href: "/fengmk2/"});
$('.styleswitch').click(function()
{
switchStylestyle($(this).attr("rel"));
});
var c = $.cookie('skinstyle');//alert(document.cookie);
if(c) switchStylestyle(c);
});
$(document).ready(function() {
//添加文摘样式和子标题样式
$(".post > p").addClass("entry");
$("#title > div").addClass("subTitle");
//搜索栏
var search = $("#q").parent().parent().addClass("search");
search.prev().hide();
$("#q").css("width","").after("<br />");
$("#leftmenu").prepend(search);
//日期
$(".CalNextPrev > a").css("color", "");
var calTable = $(".Cal").eq(0);
calTable.after("<table id='calendar'>" + calTable.html() + "</table>");
calTable.hide();
//根据input类型,添加相应的样式
$("input[@type=submit]").addClass("submit");
$("input[@type=text]").addClass("text");
//添加版权
$("#footer #footer").append(". Design by <a href='http://www.freecsstemplates.org/'>Free CSS Templates</a>(<a href='http://www.freecsstemplates.org/preview/stargazer'>stargazer</a>), adapted by <a href='http://fengmk2.cnblogs.com'>MK2</a>.");
});
1. 关于二级域名Cookie的问题及解决方法
2. copy一篇文章,主要看看 cookie 的 path 和 domain
3. 如何在本机上开发支持二级域名的.NET系统
4. 在Forms验证模式下,实现多个站点(SubDomain相同)共享同一用户登录状态