[Sie-announce] SIEコード [1658] CSSStyleDeclarationクラスを編集

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
2010年 2月 12日 (金) 20:19:32 JST


Revision: 1658
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1658
Author:   dhrname
Date:     2010-02-12 20:19:32 +0900 (Fri, 12 Feb 2010)

Log Message:
-----------
CSSStyleDeclarationクラスを編集

Modified Paths:
--------------
    branches/ufltima/dom/css.js

Modified: branches/ufltima/dom/css.js
===================================================================
--- branches/ufltima/dom/css.js	2010-02-11 13:45:14 UTC (rev 1657)
+++ branches/ufltima/dom/css.js	2010-02-12 11:19:32 UTC (rev 1658)
@@ -190,19 +190,26 @@
   return this;
 };
 CSSStyleDeclaration.prototype = {
+  /*getPropertyValueメソッド
+   *CSSの値を返す。この値は継承ではなくて、明示的に表記されているもの
+   */
 /*string*/   getPropertyValue : function( /*string*/ propertyName) {
     var tg = this.getPropertyCSSValue(propertyName);
     if (tg) {                             //見つかった場合
-      //_valueプロパティは本来、cssTextで代用されるべき
-      return (tg._value);
+      var pn = new RegExp(propertyName+":\s*");
+      return (tg.cssText.replace(pn, ""));
     } else {
       return "";
     }
   },
+  /*getPropertyCSSValueメソッド
+   *CSSValueオブジェクトを返す。このメソッドは判別に用いているので、削除不可。
+   */
 /*CSSValue*/ getPropertyCSSValue : function( /*string*/ propertyName) {
+    propertyName += ":";
     for (var i=0,tli=this._list.length;i<tli;++i) {
       var ti = this._list[i];
-      if (ti._propertyName === propertyName) {  //プロパティ名に合致するCSSValueオブジェクトが見つかった場合
+      if (ti.cssText.indexOf(propertyName) > -1) {  //プロパティ名に合致するCSSValueオブジェクトが見つかった場合
         return ti;
       }
     }
@@ -225,24 +232,23 @@
 /*void*/     setProperty : function( /*string*/ propertyName, /*string*/ value, /*string*/ priority) {
     var tg = this.getPropertyCSSValue(propertyName);
     if (tg) {  //見つかった場合
-      /*_priorityや_propertyName、_valueといったプロパティは、本当ならば、
-       *cssTextプロパティに収納されるべきである。get関連メソッドで解析するのが大変なので、3つのプロパティに分けておいた
-       */
       tg._priority = priority;
-      tg._propertyName = propertyName;
-      tg._value = value;
+      tg.cssText += propertyName;
+      tg.cssText += ":"
+      tg.cssText += value;
     } else {
       var ti = new CSSPrimitiveValue();
       tg._priority = priority;
-      tg._propertyName = propertyName;
-      tg._value = value;
+      tg.cssText += propertyName;
+      tg.cssText += ":"
+      tg.cssText += value;
       ti._num = this._list.length;
       this._list[ti._num] = ti;
       ++this.length;
     }
   },
 /*string*/   item : function( /*long*/ index) {
-    return (this._list[index]._propertyName);
+    return (this._list[index].cssText.substring(0, this._list[index].cssText.indexOf(":")));
   }
 };
 




Sie-announce メーリングリストの案内
Zurück zum Archiv-Index