我想我需要使用javascript来做这件事,所以我把它放在堆栈溢出上。所以,我的网站有两个主题,唯一的区别是一个是纯色(背景),另一个是重复的图像,所以我没有为它们制作单独的css文件。我在导航栏中有两个链接可以更改它(使用javascript)。在css文件中,它是纯色的,所以每当页面加载时,它都是这样开始的。当单击图像主题链接时,它会将document.body.backgroundImage设置为图像,而当按下纯色主题链接时,它只会将背景图像设置为"“(空),以便您可以再次看到该颜色。那么,如何让主题持久化,使其在用户每次转到另一个页面以及下次返回时保持不变。谢谢。
编辑:我可以使用PHP或javascript。
发布于 2009-10-24 12:37:16
如果您使用的都是javascript,但没有任何服务器端代码可用,下面是一个设置和读取cookie的JS示例:
将此函数添加到您的JS中,然后在主题更改时运行它:
function set_theme(name){
document.cookie='sel_theme='+name+';';
}//so, run set_theme('whatevername'); when it is set by the user要读取cookie并在页面加载上设置主题(使用jQuery或类似的$(document).ready()会比onload更好,但这里有一个简单的js/dom示例)
window.onload=function(){
var cookie_pos=document.cookie.indexOf('sel_theme=');//locate value in cookie
if(cookie_pos!=-1){//if string was found
var cookie_flavor=substr(cookie_pos+10,document.cookie.indexOf(';',cookie_pos));//extract the value of the cookie
/*then run your already existing change theme function using the extracted name*/
} 发布于 2009-10-24 12:34:05
您可以使用会话在服务器端跟踪用户的首选项。当用户重新启动并选择了一个主题(您可以从会话变量中确定)时,服务器将提供设置了backgroundImage的超文本标记语言,而不是纯色。当用户切换首选项时,您可以发出一个更新会话变量的ajax请求。
https://stackoverflow.com/questions/1616943
复制相似问题