2011-10-17 85 views
0

我有這個pixelpost photoblog,它有一個java腳本css切換器的主題。刷新後沒有css

問題是,如果我切換到替代CSS(黑色主題),並刷新頁面被剝離的任何CSS信息。如果我不刷新一切似乎確定雖然。

我無法弄清楚,因爲我對編程相當陌生,請你給我一隻手。 This是網站,和切換器是右上角(以下HTML和JS代碼):

<a href="#" onclick="setActiveStyleSheet('light'); return false;"><b>Light</b></a>/<a href="#" onclick="setActiveStyleSheet('dark'); return false;"><b>Dark</b></a> 

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 getActiveStyleSheet() { 
    var i, a; 
    for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { 
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") &&       !a.disabled) return a.getAttribute("title"); 
    } 
    return null; 
} 

function getPreferredStyleSheet() { 
    var i, a; 
    for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { 
    if(a.getAttribute("rel").indexOf("style") != -1 
     && a.getAttribute("rel").indexOf("alt") == -1 
      && a.getAttribute("title") 
     ) return a.getAttribute("title"); 
    } 
    return null; 
} 

function createCookie(name,value,days) { 
    if (days) { 
    var date = new Date(); 
    date.setTime(date.getTime()+(days*24*60*60*1000)); 
    var expires = "; expires="+date.toGMTString(); 
    } 
    else expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
    var c = ca[i]; 
    while (c.charAt(0)==' ') c = c.substring(1,c.length); 
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

window.onload = function(e) { 
    var cookie = readCookie("style"); 
    var title = cookie ? cookie : getPreferredStyleSheet(); 
    setActiveStyleSheet(title); 
} 

window.onunload = function(e) { 
    var title = getActiveStyleSheet(); 
    createCookie("style", title, 365); 
} 

var cookie = readCookie("style"); 
var title = cookie ? cookie : getPreferredStyleSheet(); 
setActiveStyleSheet(title); 
+0

在Firefox 7和Chrome 13上適合我。 – Anonymous

+0

同樣在這裏。無論如何,如果刷新後出現問題,則意味着Cookie的值有錯誤。你可以看看'alert(document.cookie)'設置了什麼' – deviousdodo

+0

我發現了名爲style的cookie,「content:dark」和「腳本可以訪問:yes」,所以它看起來好像沒問題。 – Silviu

回答

0

時像餅乾的風格就是風格可能不會加載被應用。

嘗試把

<script type="text/javascript" src="templates/simplyElegant/scripts/styleswitcher.js"></script> 

在文檔的底部,緊鄰標記之前。

+0

工作得很好,謝謝Nik。 當刷新頁面時,仍然有一小部分時間沒有應用CSS,但暫時沒問題。 – Silviu

+0

哎呀,說得太快了。現在有一個新問題。 在一個特定頁面上有多個腳本,除非按特定順序放置,否則照片不會顯示。 styleswitcher.js jQuery的1.3.2.min.js jScripts.js 如果我把所有的人都在底部,HTML標記我像以前一樣遇到了同樣的問題之前。如果我只放置了樣式切換器,照片將無法加載。 只有一個腳本被調用的其他頁面上的技巧。 – Silviu