| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- //.CommonJS
- var CSSOM = {};
- ///CommonJS
- /**
- * @constructor
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration
- */
- CSSOM.CSSStyleDeclaration = function CSSStyleDeclaration(){
- this.length = 0;
- // NON-STANDARD
- this._importants = {};
- };
- CSSOM.CSSStyleDeclaration.prototype = {
- constructor: CSSOM.CSSStyleDeclaration,
- /**
- *
- * @param {string} name
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue
- * @return {string} the value of the property if it has been explicitly set for this declaration block.
- * Returns the empty string if the property has not been set.
- */
- getPropertyValue: function(name) {
- return this[name] || ""
- },
- /**
- *
- * @param {string} name
- * @param {string} value
- * @param {string} [priority=null] "important" or null
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty
- */
- setProperty: function(name, value, priority) {
- if (this[name]) {
- // Property already exist. Overwrite it.
- var index = Array.prototype.indexOf.call(this, name);
- if (index < 0) {
- this[this.length] = name;
- this.length++;
- }
- } else {
- // New property.
- this[this.length] = name;
- this.length++;
- }
- this[name] = value;
- this._importants[name] = priority;
- },
- /**
- *
- * @param {string} name
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty
- * @return {string} the value of the property if it has been explicitly set for this declaration block.
- * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.
- */
- removeProperty: function(name) {
- if (!(name in this)) {
- return ""
- }
- var index = Array.prototype.indexOf.call(this, name);
- if (index < 0) {
- return ""
- }
- var prevValue = this[name];
- this[name] = "";
- // That's what WebKit and Opera do
- Array.prototype.splice.call(this, index, 1);
- // That's what Firefox does
- //this[index] = ""
- return prevValue
- },
- getPropertyCSSValue: function() {
- //FIXME
- },
- /**
- *
- * @param {String} name
- */
- getPropertyPriority: function(name) {
- return this._importants[name] || "";
- },
- /**
- * element.style.overflow = "auto"
- * element.style.getPropertyShorthand("overflow-x")
- * -> "overflow"
- */
- getPropertyShorthand: function() {
- //FIXME
- },
- isPropertyImplicit: function() {
- //FIXME
- },
- // Doesn't work in IE < 9
- get cssText(){
- var properties = [];
- for (var i=0, length=this.length; i < length; ++i) {
- var name = this[i];
- var value = this.getPropertyValue(name);
- var priority = this.getPropertyPriority(name);
- if (priority) {
- priority = " !" + priority;
- }
- properties[i] = name + ": " + value + priority + ";";
- }
- return properties.join(" ")
- }
- };
- //.CommonJS
- exports.CSSStyleDeclaration = CSSOM.CSSStyleDeclaration;
- ///CommonJS
|