- \r
+\r
+\r
+\r
X.Dom = X.Class._override(\r
new X.EventDispatcher(),\r
{\r
* 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
+ * http://sssslide.com/www.slideshare.net/hiroakiwakamatsu/javascript-14514208\r
+ * 1. 傾き時の画面サイズ取得ー 対処方法の例\r
+ * (1)ー• タイマーを使って、画面サイズ取得の タイミングを少しだけ遅延させる\r
+ * window.onorientationchange = function() { setTimeout(function() { alert("W: " + window.innerWidth + ", H: " + window.innerHeight); }, 200); }\r
+ * 横に傾けた時、正常に横向け時の 幅と高さが取得できている ただし、端末によってはうまく取得できな い場合がある(Galaxy S IIIとか・・・) 7 \r
+ * \r
+ * http://sssslide.com/www.slideshare.net/hiroakiwakamatsu/ss-12718639\r
+ * \r
+ * \r
* 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
};\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
h.appendTo = h.appendToRoot = h.before = h.after = h.clone = h.remove = h.destroy = h.prevNode = h.nextNode = h.createText = h.append = h.appendAt = h.empty = h.html = h.text =\r
r.appendTo = r.appendToRoot = r.before = r.after = r.clone = r.remove = r.destroy = r.prevNode = r.nextNode = new Function( 'return this' );\r
\r
- r._root = h._root = r;\r
- r.parent = h;\r
+ r._root = h._root = r;\r
+ r.parent = h;\r
h._xnodes = [ r ];\r
\r
X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT, function(){\r
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
case 'beforeunload' :\r
\r
// ie では a href="javascript" な要素でも beforeunload が起こる\r
- href = e.target && e.target.attr( 'href' );\r
+ href = e.target && e.target.attr && e.target.attr( 'href' );\r
if( href && href.indexOf && href.indexOf( 'javascript:' ) === 0 ) return X.Callback.PREVENT_DEFAULT | X.Callback.STOP_PROPAGATION;\r
\r
return X.Dom.dispatch( { type : X.Dom.Event.BEFORE_UNLOAD } );\r
*/\r
X.Dom.asyncDispatch( 0, { type : type, w : X.Dom.w, h : X.Dom.h } );\r
};\r
- return X.EventDispatcher.prototype.listen.apply( X.Dom, arguments );\r
+ return X_EventDispatcher_listen.apply( X.Dom, arguments );\r
},\r
\r
getPointerPosition : function(){\r
\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
X.Dom.EVENT_POINTER = navigator.msPointerEnabled || navigator.pointerEnabled;\r
X.Dom.EVENT_TOUCH = !X.Dom.EVENT_POINTER && window.ontouchstart !== undefined;\r
\r
-X.Dom.moveToHead = {\r
- STYLE : true,\r
- LINK : true,\r
- TITLE : true,\r
- BGSOUND : true,\r
- AREA : true,\r
- BASE : true,\r
- META : true\r
-};\r
\r
-X.Dom.cleanupTagNames = {\r
- SCRIPT : true,\r
- NOSCRIPT : true,\r
- NOFRAMES : true,\r
- '!' : true, // ie\r
- COMMENT : true, // ie\r
- NOEMBED : true,\r
- NOLAYER : true\r
- };\r
-X.Dom.skipCleanupTagNames = {\r
- PRE : true,\r
- TEXTAREA : true,\r
- CODE : true,\r
- KBD : true,\r
- SAMP : true,\r
- XMP : true,\r
- PLAINTEXT : true,\r
- LISTING : true\r
-};\r
\r
X.Dom.CRLF = String.fromCharCode( 13 ) + String.fromCharCode( 10 );\r
\r
ss = '//',\r
_ary, ary, i = 0;\r
\r
- if( 'http:file'.indexOf( path.substr( 0, 4 ) ) !== -1 ) return path;\r
+ if( 'http:file:https:'.indexOf( path.substr( 0, 4 ) ) !== -1 ) return path;\r
\r
_ary = X.Dom.baseURL.split( ss );\r
ary = _ary[ 1 ].split( s );\r
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