css.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. function get_css(rule_name, stylesheet, delete_flag) {
  2. if (!document.styleSheets) return false;
  3. rule_name = rule_name.toLowerCase(); stylesheet = stylesheet || 0;
  4. for (var i = stylesheet; i < document.styleSheets.length; i++) {
  5. var styleSheet = document.styleSheets[i]; css_rules = document.styleSheets[i].cssRules || document.styleSheets[i].rules;
  6. if(!css_rules) continue;
  7. var j = 0;
  8. do {
  9. //if(i == 2 && j > 30) alert(css_rules[j].selectorText.toLowerCase() + " " + rule_name);
  10. if(css_rules.length && j > css_rules.length + 5) return false;
  11. if(css_rules[j].selectorText && css_rules[j].selectorText.toLowerCase() == rule_name) {
  12. if(delete_flag == true) {
  13. if(document.styleSheets[i].removeRule) document.styleSheets[i].removeRule(j);
  14. if(document.styleSheets[i].deleteRule) document.styleSheets[i].deleteRule(j);
  15. return true;
  16. }
  17. else return css_rules[j];
  18. }
  19. }
  20. while (css_rules[++j]);
  21. }
  22. return false;
  23. }
  24. function add_css(rule_name, stylesheet) {
  25. rule_name = rule_name.toLowerCase(); stylesheet = stylesheet || 0;
  26. if (!document.styleSheets || get_css(rule_name, stylesheet)) return false;
  27. (document.styleSheets[stylesheet].insertRule) ? document.styleSheets[stylesheet].insertRule(rule_name+' { }', 0) : document.styleSheets[stylesheet].addRule(rule_name, null, 0);
  28. return get_css(rule_name, stylesheet);
  29. }
  30. function get_sheet_num (href_name) {
  31. if (!document.styleSheets) return false;
  32. for (var i = 0; i < document.styleSheets.length; i++) { if(document.styleSheets[i].href && document.styleSheets[i].href.toString().match(href_name)) return i; }
  33. return false;
  34. }
  35. function remove_css(rule_name, stylesheet) { return get_css(rule_name, stylesheet, true); }
  36. function add_sheet(url, media) {
  37. if(document.createStyleSheet) {
  38. document.createStyleSheet(url);
  39. }
  40. else {
  41. var newSS = document.createElement('link');
  42. newSS.rel = 'stylesheet';
  43. newSS.type = 'text/css';
  44. newSS.media = media || "all";
  45. newSS.href = url;
  46. // var styles = "@import url(' " + url + " ');";
  47. // newSS.href ='data:text/css,'+escape(styles);
  48. document.getElementsByTagName("head")[0].appendChild(newSS);
  49. }
  50. }