問候所有的智者!我真的需要你的幫助,因爲我是新來的JS/DOM的東西。我有這個基本上獲取和設置cookie的腳本,當特定元素觸發時,它將存儲新的cookie值並刷新瀏覽器。該值然後注入到body類。但是,在向body添加新類的過程中,我已經解決了一個問題,它會在讀取當前樣式css之前讀取默認樣式(FOUC)。如何防止閃光燈未風格的內容時,注射類的身體
(function ($) {
var Cookies = {
init: function() {
themes = Cookies.getCookie('THEME');
if (themes != null && themes != '') {
document.getElementsByTagName('body')[0].className += ' custom-'+themes;
}
else {
return;
}
},
setCookie: function (name, value, expired) {
var expiredDate = new Date();
expiredDate.setDate(expiredDate.getDate() + expired);
document.cookie = name + '=' + escape(value);
(expired == null) ? '' : ';expires=' + expiredDate.toUTCString();
},
getCookie: function (name) {
if (document.cookie.length > 0) {
cookieStart = document.cookie.indexOf(name + '=');
if (cookieStart != -1) {
cookieStart = cookieStart + name.length + 1;
cookieEnd = document.cookie.indexOf(';', cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
return unescape(document.cookie.substring(cookieStart, cookieEnd));
}
}
return '';
}
};
$('.boxer').each(function() {
$(this).bind('click', function (e) {
e.preventDefault();
var element = $(this).attr('class').replace('boxer', '').replace(' ', '');
setTimeout(function() {
Cookies.setCookie('THEME', element, 1);
window.location.replace(window.location.href);
}, 100);
});
});
$(function() {
Cookies.init();
});
})(jQuery);
我怎樣才能避免這個問題?我已經試過把它作爲鏈接元素之前的第一個元素,但是它也失敗了。
同意同意..也許我應該使用服務器端要調用的cookie並把它傳遞給身體類。感謝Liam。 – fadzril 2010-12-13 13:25:13
但是,如果有人有另一種技術和選擇,歡迎回復此線程.. :)。我非常樂意閱讀你的意見。 – fadzril 2010-12-13 13:26:17
同樣在這裏,我用這個技術,什麼也沒有,但成功,但如果任何人有另一種方式來做到這一點,我會興趣閱讀什麼,可能是。 – Liam 2010-12-14 11:21:10