OSDN Git Service

Version 0.6.222, Fix the bug of X.TextRange.
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 04_XBoxModel.js
index a609fc4..dbf477a 100644 (file)
@@ -20,7 +20,7 @@ X_ViewPort[ 'listenOnce' ]( X_EVENT_INIT, function(){
                X_Node_BoxModel.CONTENT_BOX;\r
        \r
        if( X_Node_BoxModel_defaultBoxModel === X_Node_BoxModel.CONTENT_BOX ){\r
-               X_Node_BoxModel_boxSizingEnabled = node[ 'cssText' ]( 'width:10px;padding:1px;border:2px solid #0;margin:4px;' +\r
+               X_Node_BoxModel_boxSizingEnabled = node[ 'cssText' ]( 'width:10px;padding:1px;border:2px solid red;margin:4px;' +\r
                        'box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-o-box-sizing:border-box;-ms-box-sizing:border-box;' )\r
                                                                                        [ 'width' ]() === 10;\r
        };\r
@@ -65,7 +65,7 @@ X_ViewPort[ 'listenOnce' ]( X_EVENT_INIT, function(){
 function X_Node_BoxModel_mesure( that, name ){\r
        var flags = that[ '_flags' ], elm;\r
        \r
-       if( ( flags & X_NodeFlags_IN_TREE ) === 0 || flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) return 0;\r
+       if( !that[ '_tag' ] || ( ( flags & X_NodeFlags_IN_TREE ) === 0 ) || ( flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) ) return 0;\r
        \r
        X_Node_updateTimerID && X_Node_startUpdate();\r
        \r
@@ -213,17 +213,17 @@ function X_Node_y(){
 };\r
 \r
 /**\r
- * 要素の文書内の位置。引数に xnode を与えた場合、\r
+ * 要素の文書内の位置。\r
  * @alias Node.prototype.offset\r
  * @return {object} { x: {number}, y : {number} }\r
  * @example node.offset();\r
  */\r
-function X_Node_offset( xnode ){\r
+function X_Node_offset(){\r
        var flags  = this[ '_flags' ],\r
                offset = { x : 0, y : 0 },\r
                obj, parent, elm;\r
        \r
-       if( ( flags & X_NodeFlags_IN_TREE ) === 0 || flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) return offset;\r
+       if( ( ( flags & X_NodeFlags_IN_TREE ) === 0 ) || ( flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) ) return offset;\r
        \r
        if( X_Node_body === this || X_Node_html === this ) return offset;\r
 \r
@@ -237,6 +237,8 @@ function X_Node_offset( xnode ){
 // エレメントの座標取得 ~スクロール要素~\r
 // http://n-yagi.0r2.net/script/2009/07/post_16.html\r
 \r
+// TODO getClientRects Safari2- ?\r
+\r
 //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\r
 //  エレメントの絶対座標を得たい\r
 //------------------------------------------------------------------------------\r
@@ -246,7 +248,7 @@ var X_Node_getPosition =
                (\r
                        document.compatMode === 'CSS1Compat' && !X_UA[ 'Webkit' ] ? function( el ){\r
                        var pos  = el.getBoundingClientRect(),\r
-                               html = document.documentElement;\r
+                               html = X_elmHtml;\r
                        return  {   x:(pos.left + html.scrollLeft - html.clientLeft)\r
                                ,   y:(pos.top  + html.scrollTop  - html.clientTop) };\r
                        } :\r
@@ -275,7 +277,7 @@ var X_Node_getPosition =
             var ey  =   0;\r
             //\r
             var el  =   target;\r
-            var bd  =   document.body;\r
+            var bd  =   X_elmBody;\r
             \r
             do\r
             { \r