CSSMediaRule.js
1 //.CommonJS 2 var CSSOM = { 3 CSSRule: require("./CSSRule").CSSRule, 4 MediaList: require("./MediaList").MediaList 5 }; 6 ///CommonJS 7 8 9 /** 10 * @constructor 11 * @see http://dev.w3.org/csswg/cssom/#cssmediarule 12 * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule 13 */ 14 CSSOM.CSSMediaRule = function CSSMediaRule() { 15 CSSOM.CSSRule.call(this); 16 this.media = new CSSOM.MediaList(); 17 this.cssRules = []; 18 }; 19 20 CSSOM.CSSMediaRule.prototype = new CSSOM.CSSRule(); 21 CSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule; 22 CSSOM.CSSMediaRule.prototype.type = 4; 23 //FIXME 24 //CSSOM.CSSMediaRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule; 25 //CSSOM.CSSMediaRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule; 26 27 // http://opensource.apple.com/source/WebCore/WebCore-658.28/css/CSSMediaRule.cpp 28 Object.defineProperty(CSSOM.CSSMediaRule.prototype, "cssText", { 29 get: function() { 30 var cssTexts = []; 31 for (var i=0, length=this.cssRules.length; i < length; i++) { 32 cssTexts.push(this.cssRules[i].cssText); 33 } 34 return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}"; 35 } 36 }); 37 38 39 //.CommonJS 40 exports.CSSMediaRule = CSSOM.CSSMediaRule; 41 ///CommonJS