Есть два замечательных java-скрипта. Первый — это cufon, позволяющий сделать на сайте красивые заголовки, практически с любым шрифтом. Писать об этом подробно я не буду, так как в сети множество информации на эту тему. Второй замечательный скрипт — это styleswitcher, позволяющий посетителю на лету менять цветовую схему оформления сайта)
Сами по себе, эти два скрипта чудесно работают. О Styleswitcher я уже писал ранее. Однако, недавно, разрабатывая одну симпатичную тему оформления, в которой я использовал и тот и другой скрипты, я столкнулся со следующей проблемой.
По умолчанию, при смене цветовой схемы оформления элементы, которые должны быть обработаны cufon, не обрабатывались им. То есть, скажем, в теме оформления определено, что шрифт всех заголовков на сайте должен отображаться красивым шрифтом Decor, и они отображаются этим шрифтом, но отображаются им только до тех пор, пока посетитель не изменить цветовую схему по умолчанию, на любую другую цветовую схему, поддерживаемую темой оформления. Сразу после этого, красивые заголовки начинают отображаться обычным, ничем не примечательным шрифтом.
Для того, чтобы это поправить, нужно вместо такой конструкции в header:
использовать такую:
вместо:
Выберите цвет оформления
использовать:
Выберите цвет оформления
В файле styleswitcher.js
Функцию:
function setActiveStyleSheet(title) {
var i, a, main;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title) a.disabled = false;
}
}
}
Заменить на:
function setActiveStyleSheet(title, callback) {
var i, a, main;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title) a.disabled = false;
}
}
if(callback)
callback();
}
Данные изменения в коде помогают устранить описанный баг с заменой шрифтов