pre_main.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. (function(){
  2. var theme = getTheme();
  3. setTheme(theme);
  4. }());
  5. function addCss(filename) {
  6. var head = document.getElementsByTagName('head')[0];
  7. var link = document.createElement('link');
  8. link.rel = 'stylesheet';
  9. link.type = 'text/css';
  10. link.href = filename;
  11. head.appendChild(link);
  12. }
  13. function removejscssfile(filename, filetype) {
  14. var targetelement = (filetype == "js") ? "script" : (filetype == "css") ? "link" : "none"
  15. var targetattr = (filetype == "js") ? "src" : (filetype == "css") ? "href" : "none"
  16. var allsuspects = document.getElementsByTagName(targetelement)
  17. for (var i = allsuspects.length; i >= 0; i--) {
  18. if (allsuspects[i] && allsuspects[i].getAttribute(targetattr) != null && allsuspects[i].getAttribute(targetattr).indexOf(filename) != -1)
  19. allsuspects[i].parentNode.removeChild(allsuspects[i])
  20. }
  21. }
  22. function getTheme(){
  23. var t = localStorage.getItem("theme");
  24. if(!t){
  25. t = "light";
  26. setTheme(t);
  27. }
  28. return t;
  29. }
  30. function setTheme(theme){
  31. var obj = document.getElementById("themes");
  32. if(theme=="dark"){
  33. if(obj){
  34. obj.classList.remove("light");
  35. obj.classList.add("dark");
  36. }
  37. document.getElementsByTagName("html")[0].classList.add("dark");
  38. // load dark and light togher, distingush by .dark class instead use single css file
  39. // removejscssfile("/static/css/theme_default/light.css", "css");
  40. // addCss("/static/css/theme_default/dark.css");
  41. }else{
  42. if(obj){
  43. obj.classList.remove("dark");
  44. obj.classList.add("light");
  45. }
  46. document.getElementsByTagName("html")[0].classList.remove("dark");
  47. // removejscssfile("/static/css/theme_default/dark.css", "css");
  48. // addCss("/static/css/theme_default/light.css");
  49. }
  50. localStorage.setItem("theme", theme);
  51. }