首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持网站主题不变。曲奇饼?

问保持网站主题不变。曲奇饼?
EN

Stack Overflow用户
提问于 2009-10-24 12:15:49
回答 2查看 2.1K关注 0票数 1

我想我需要使用javascript来做这件事,所以我把它放在堆栈溢出上。所以,我的网站有两个主题,唯一的区别是一个是纯色(背景),另一个是重复的图像,所以我没有为它们制作单独的css文件。我在导航栏中有两个链接可以更改它(使用javascript)。在css文件中,它是纯色的,所以每当页面加载时,它都是这样开始的。当单击图像主题链接时,它会将document.body.backgroundImage设置为图像,而当按下纯色主题链接时,它只会将背景图像设置为"“(空),以便您可以再次看到该颜色。那么,如何让主题持久化,使其在用户每次转到另一个页面以及下次返回时保持不变。谢谢。

编辑:我可以使用PHP或javascript。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-24 12:37:16

如果您使用的都是javascript,但没有任何服务器端代码可用,下面是一个设置和读取cookie的JS示例:

将此函数添加到您的JS中,然后在主题更改时运行它:

代码语言:javascript
复制
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示例)

代码语言:javascript
复制
 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*/
  }    
票数 2
EN

Stack Overflow用户

发布于 2009-10-24 12:34:05

您可以使用会话在服务器端跟踪用户的首选项。当用户重新启动并选择了一个主题(您可以从会话变量中确定)时,服务器将提供设置了backgroundImage的超文本标记语言,而不是纯色。当用户切换首选项时,您可以发出一个更新会话变量的ajax请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1616943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档