OSDN Git Service

Version 0.6.81, bugfix for X.Class.
[pettanr/clientJs.git] / 0.6.x / js / 01_dom / 10_XDom.js
index 9ab72de..63a799c 100644 (file)
@@ -1,4 +1,6 @@
-       \r
+\r
+\r
+\r
 X.Dom = X.Class._override(\r
        new X.EventDispatcher(),\r
        {\r
@@ -19,6 +21,9 @@ X.Dom = X.Class._override(
  *  https://w3g.jp/blog/studies/ios7_1_minimal-ui_warning\r
  *  iOS7.0からあったiPad Safariの高さ100%コンテンツでlandscape(横向き)時に起きる不具合\r
  * \r
+ * http://looxu.blogspot.jp/2013/11/ios7mobile-safariwindowinnerheight.html\r
+ * iOS7にて、Mobile Safariのwindow.innerHeightを正しく取得する方法\r
+ * \r
  *  http://tenderfeel.xsrv.jp/javascript/1182/\r
  *  アドレスバーの高さの算出\r
  * \r
@@ -34,7 +39,8 @@ X.Dom = X.Class._override(
  * getBoundingClientRect で fontsize の調査\r
  */\r
                _resize :\r
-                       X.UA.IE < 9 ?\r
+                       // iOS もループで回す,,,iOS3.1.3, iOS6 で確認\r
+                       X.UA.IE < 9 || X.UA.iOS ?\r
                                (function(){\r
                                        var size;\r
                                        if( !X.Dom._lock ){\r
@@ -47,7 +53,7 @@ X.Dom = X.Class._override(
                                                };\r
                                        };\r
                                        \r
-                                       size = Node._fontSizeNode._rawNode.offsetHeight;\r
+                                       size = Node._fontSizeNode._rawObject.offsetHeight;\r
                                        if( X.Dom.baseFontSize !== size ){\r
                                                X.Dom.baseFontSize && X.Dom.asyncDispatch( 0, { type : X.Dom.Event.BASE_FONT_RESIZED, fontSize : size, w : X.Dom.w, h : X.Dom.h  } );\r
                                                X.Dom.baseFontSize = size;\r
@@ -142,7 +148,7 @@ X.Dom = X.Class._override(
                                        X.Timer.add( 333, X.Dom._resize );\r
                                };\r
                                \r
-                               X.Dom.baseFontSize = Node._fontSizeNode._rawNode.offsetHeight;\r
+                               X.Dom.baseFontSize = Node._fontSizeNode._rawObject.offsetHeight;\r
                                \r
                                X.Dom.readyState = X.Dom.Event.XDOM_READY;\r
                                X.Dom.asyncDispatch( 0, { type : X.Dom.Event.XDOM_READY, w : X.Dom.w = size[ 0 ], h : X.Dom.h = size[ 1 ] } );\r
@@ -217,7 +223,7 @@ X.Dom = X.Class._override(
                                 */\r
                                X.Dom.asyncDispatch( 0, { type : type, w : X.Dom.w, h : X.Dom.h } );\r
                        };\r
-                       return x_eventdispatcher_on.apply( X.Dom, arguments );\r
+                       return x_eventdispatcher_listen.apply( X.Dom, arguments );\r
                },\r
                \r
                getPointerPosition : function(){\r
@@ -232,6 +238,8 @@ X.Dom = X.Class._override(
                _getSize :\r
                        X.UA.IE ?\r
                                new Function( 'return[X.Dom._root.clientWidth,X.Dom._root.clientHeight]' ) :\r
+                       4 <= X.UA.iOS ?\r
+                               new Function( 'return[window.innerWidth,window.innerHeight]' ) :\r
                                new Function( 'return[window.innerWidth,window.innerHeight]' ),\r
                \r
                getSize : function(){\r
@@ -279,13 +287,21 @@ X.Dom = X.Class._override(
 \r
                getScrollbarSize : function(){\r
                        return [ X.Dom.BoxModel.vScrollbarSize, X.Dom.BoxModel.hScrollbarSize ];        \r
-               }               \r
+               },\r
+               \r
+               getBaseFontSize : function(){\r
+                       if( Node._body._updateTimerID ){\r
+                               Node._body._startUpdate();\r
+                               return Node._fontSizeNode._rawObject.offsetHeight;\r
+                       };\r
+                       return X.Dom.baseFontSize;\r
+               }\r
        }\r
 );\r
 \r
-if( !( X.UA.IE < 9 ) ){\r
+if( !( X.UA.IE < 9 || X.UA.iOS ) ){\r
        X.Dom._detectFontSize = function(){\r
-               var size = Node._fontSizeNode._rawNode.offsetHeight;\r
+               var size = Node._fontSizeNode._rawObject.offsetHeight;\r
                if( X.Dom.baseFontSize !== size ){\r
                        X.Dom.baseFontSize && X.Dom.asyncDispatch( 0, { type : X.Dom.Event.BASE_FONT_RESIZED, fontSize : size, w : X.Dom.w, h : X.Dom.h } );\r
                        X.Dom.baseFontSize = size;\r
@@ -442,7 +458,7 @@ if( window[ 'orientation' ] !== undefined ){
        X.Dom._orientationchange = function( e ){\r
                X.Dom._orientationFlag = true;\r
                !X.UA.Android && X.Dom._resize();\r
-               console.log( '-- orientationchange : ' + X.getTime() );\r
+               console.log( '-- orientationchange : ' + X.Dom.getSize[ 0 ] + ' ' + X.Dom.getSize[ 1 ] );\r
        };\r
 };\r
 \r