Я точно знаю, чего вы пытаетесь достичь, так как я работаю над точно такой же функциональностью для проекта на работе!Я не знаю этого наверняка, но я подозреваю, что используемый вами сценарий kevinluck является ответвлением от сценария alistapart, который был опубликован около 5 лет назад, в 2001 году.http://www.alistapart.com/articles/alternate/
Я еще не получил окончательное решение, так как я все еще исследую некоторые элементы, включающие массивы и чтение / запись в куки.Но вот частичное решение, которое сохраняет указанную таблицу стилей поверх таблицы стилей по умолчанию:
function setActiveStyleSheet(title) {
var i, a, main, active, elements;
elements = document.getElementsByTagName("link");
// search through each stylesheet
for(i=0; elements.length; i++) {
a = elements[i];
// check that the style sheet has a title and attribute is not empty
if((a.getAttribute("rel").indexOf("style") != -1) && a.getAttribute("title")) {
if ((a.getAttribute("title") == title) && (a.disabled == false)){
active = true;
};
// disable stylesheet
a.disabled = true;
// if the stylesheet is marked 'default', turned it on
if (a.getAttribute("title") == "default"){
a.disabled = false;
}
// if the stylesheet has the title we're trying to set, turned it on
if (a.getAttribute("title") == title){
a.disabled = false;
}
// or if it was already on, in which case we turn it on
if (active) {
a.disabled = false;
};
}
}
}
Вы можете назвать это решением 1.5, а не решением 2 таблиц стилей.В любом случае, окончательное решение будет включать в себя либо написание нескольких файлов cookie, каждый из которых содержит одну ссылку на таблицу стилей, либо на создание составного файла cookie, который содержит несколько ссылок на таблицу стилей.
Если / когда я получу это исследование и решу, я опубликую остальную часть решения.До тех пор, надеясь, что кто-то с большим опытом использования файлов cookie сможет внести свой вклад ...
Best, Abigail