Вопрос

Я думаю, мне нужно будет использовать javascript для этого, поэтому я поставил его здесь на переполнение стека. Итак, у меня есть две темы для моего сайта, с той лишь разницей, что одна - это сплошной цвет (фон), а другая - повторяющееся изображение, поэтому я не создавал для них отдельные CSS-файлы. У меня есть две ссылки в панели навигации, которые меняют его (с помощью JavaScript). В файле CSS это сплошной цвет, поэтому, когда страница загружается, она начинается как эта. При щелчке по ссылке на тему изображения она устанавливает document.body.backgroundImage к изображению, а когда нажата ссылка на однотонную тему, она просто устанавливает фоновое изображение на " (пусто), так что вы можете увидеть цвет снова. Так как я могу сделать тему постоянной, не меняющейся, когда пользователь переходит на другую страницу, а также когда он возвращается в другой раз. Спасибо.

РЕДАКТИРОВАТЬ: я могу использовать либо PHP, либо JavaScript.

Это было полезно?

Решение

Если вы используете весь javascript и не имеете серверного кода для работы, вот пример JS для установки и чтения cookie:

Добавьте эту функцию в 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*/
  }    

Другие советы

Вы можете использовать сеанс для отслеживания предпочтений пользователя на стороне сервера. Когда пользователь возвращается и выбирает тему (которую вы можете определить по переменным сеанса), тогда сервер доставит HTML с установленным backgroundImage вместо сплошного цвета. Когда пользователь переключает настройки, вы можете отправлять ajax-запрос, который обновляет переменные сеанса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top