X_ViewPort_orientationFlag = true;
!X.UA.Android && X_ViewPort_resize();
//console.log( '-- orientationchange : ' + X.ViewPort.getSize[ 0 ] + ' ' + X.ViewPort.getSize[ 1 ] );
- };
+ },
+
+ X_ViewPort_document = new X.EventDispatcher( document ),
X_ViewPort = X.Class._override(
new X.EventDispatcher( window ),
case 'unload' :
X_ViewPort.dispatch( X.Event.UNLOAD );
- X.ViewPort.unlisten();
- Node._document.unlisten();
+ X_ViewPort.unlisten();
+ X_ViewPort_document.unlisten();
Node._html._actualRemove( true );
break;
case 'visibilitychange' :
return X_ViewPort.listening( type, arg1, arg2, arg3 );
},
+ // hammer のテストファイルだけが使用
asyncDispatch : function(){
return X_ViewPort.asyncDispatch.apply( X_ViewPort, arguments );
},
X_ViewPort_readyState = X_TEMP.SYSTEM_EVENT_PRE_INIT;
// DOMContentLoaded の無いブラウザで X_TEMP.onDomContentLoaded への参照が残り続けるのを回避
- X_TEMP.onDomContentLoaded && Node._document.unlisten( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
+ X_TEMP.onDomContentLoaded && X_ViewPort_document.unlisten( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
delete X_TEMP.onDomContentLoaded;
elmHtml = document.documentElement ||
head.empty = head.html = head.text =
body.appendTo = body.appendToRoot = body.before = body.after = body.clone = body.remove = body.destroy = body.prevNode = body.nextNode = new Function( 'return this' );
- X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT, function(){
+ X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT, function(){
X_ViewPort_readyState = X_TEMP.SYSTEM_EVENT_XTREE;
if( X_TEMP.X_Dom_useBuilder ) X_TEMP.X_Dom_useBuilder = !!document.body.children.length;
!X_TEMP.X_Dom_useBuilder && X_ViewPort.asyncDispatch( X_TEMP.SYSTEM_EVENT_XTREE );
} );
- X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_XTREE, function(){
+ X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_XTREE, function(){
X_ViewPort_readyState = X_TEMP.SYSTEM_EVENT_INIT;
//X.UA.Opera7 && alert( 'bc' );
Node._body.appendAt( 0,
X_ViewPort.asyncDispatch( X_TEMP.SYSTEM_EVENT_INIT );
} );
- X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){
+ X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){
var size = X_ViewPort_getWindowSize();
if( X_Dom_orientationchange ){
- X.ViewPort.listen( 'orientationchange', X_Dom_orientationchange );
+ X_ViewPort.listen( 'orientationchange', X_Dom_orientationchange );
};
if( X_Dom_detectFontSize ){
- X.ViewPort.listen( 'resize', X_ViewPort_resize );
+ X_ViewPort.listen( 'resize', X_ViewPort_resize );
X.Timer.add( 333, X_Dom_detectFontSize );
} else {
X.Timer.add( 333, X_ViewPort_resize );
console.log( X_ViewPort.asyncDispatch( X_TEMP.SYSTEM_EVENT_PRE_INIT ) );
- X.ViewPort
+ X_ViewPort
.listen( 'beforeunload', X_ViewPort )
.listenOnce( 'unload', X_ViewPort );
//http://d.hatena.ne.jp/koumiya/20080916/1221580149
if( document[ 'hidden' ] !== undefined ) {// iOS 7+
- Node._document.listen( 'visibilitychange', X_ViewPort );
+ X_ViewPort_document.listen( 'visibilitychange', X_ViewPort );
} else
if( document[ 'webkitHidden' ] !== undefined ) {
- Node._document.listen( 'webkitvisibilitychange', X_ViewPort );
+ X_ViewPort_document.listen( 'webkitvisibilitychange', X_ViewPort );
} else
if( X.UA.iOS && window[ 'onpageshow' ] !== undefined ) {
- X.ViewPort.listen( 'pageshow', X_ViewPort )
+ X_ViewPort.listen( 'pageshow', X_ViewPort )
.listen( 'pagehide', X_ViewPort );
} else {
- X.ViewPort.listen( 'focus', X_ViewPort )
+ X_ViewPort.listen( 'focus', X_ViewPort )
.listen( 'blur', X_ViewPort );
};
console.log( 'X.Dom dom:w3c=' + X_UA_DOM.W3C + ' ev:w3c=' + X_UA_EVENT.W3C );
+
+/* -----------------------------------------------
+ * Document Ready
+ * Dean Edwards/Matthias Miller/John Resig
+ */
+
+// SafariでJavaScriptのデバッグをする方法
+// safari1.3 可
+// http://shimax.cocolog-nifty.com/search/2006/09/safarijavascrip_c54d.html
+
+/* for ie9+/Mozilla/Opera9 */
+if( X_UA_EVENT.W3C ){
+ X_ViewPort_document.listenOnce( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
+} else
+if( 6 <= X.UA.IE && X.inHead ){
+ // if this script in Head
+ document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );
+ X_TEMP._script = document.getElementById( "__ie_onload" );
+ X_TEMP._script.onreadystatechange = function(){
+ var s = X_TEMP._script;
+ if( s && s.readyState === 'complete' ){
+ s.onreadystatechange = X.emptyFunction;
+ s.onreadystatechange = null;
+ s.parentNode.removeChild( s );
+ delete X_TEMP._script;
+ X_TEMP.onDomContentLoaded && X_TEMP.onDomContentLoaded();
+ };
+ };
+};
+// Re: onLoad doesn't work with Safari?
+// http://lists.apple.com/archives/web-dev/2003/Oct/msg00036.html
+if( X.UA.WebKit || X.UA.Safari < 3 ){ // sniff
+ X.Timer.add( 16, function(){
+ if( !X_TEMP.onDomContentLoaded ) return X_Callback_UN_LISTEN;
+ if( document.readyState === 'loaded' || document.readyState === 'complete' ) return X_TEMP.onDomContentLoaded();
+ });
+};
+
+/* for other browsers */
+X_ViewPort.listenOnce( 'load', X_TEMP.onDomContentLoaded );
--- /dev/null
+
+
+X.Doc = {
+ listen : function( type, arg1, arg2, arg3 ){
+ if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){
+ /*
+ * X.Event.XDOM_READY 以後に listen した場合の対策
+ */
+ X_ViewPort_document.asyncDispatch( type );
+ };
+ type && arg1 && X_ViewPort_document.listen( type, arg1, arg2, arg3 );
+ return X.Doc;
+ },
+
+
+ listenOnce : function( type, arg1, arg2, arg3 ){
+ if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){
+ /*
+ * X.Event.XDOM_READY 以後に listen した場合の対策
+ */
+ X_ViewPort_document.asyncDispatch( type );
+ };
+ type && arg1 && X_ViewPort_document.listenOnce( type, arg1, arg2, arg3 );
+ return X.Doc;
+ },
+
+ unlisten : function( type, arg1, arg2, arg3 ){
+ type && arg1 && X_ViewPort_document.unlisten( type, arg1, arg2, arg3 );
+ return X.Doc;
+ },
+
+ listening : function( type, arg1, arg2, arg3 ){
+ return X_ViewPort_document.listening( type, arg1, arg2, arg3 );
+ }
+};
X_Event_Rename[ 'contextmenu' ] = 'mousedown' );\r
};\r
};\r
-\r
-/* -----------------------------------------------\r
- * Document Ready\r
- * Dean Edwards/Matthias Miller/John Resig\r
- */\r
-\r
-// SafariでJavaScriptのデバッグをする方法\r
-// safari1.3 可\r
-// http://shimax.cocolog-nifty.com/search/2006/09/safarijavascrip_c54d.html\r
-\r
-/* for ie9+/Mozilla/Opera9 */\r
-if( X_UA_EVENT.W3C ){\r
- Node._document.listenOnce( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );\r
-} else\r
-if( 6 <= X.UA.IE && X.inHead ){\r
- // if this script in Head\r
- document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );\r
- X_TEMP._script = document.getElementById( "__ie_onload" );\r
- X_TEMP._script.onreadystatechange = function(){\r
- var s = X_TEMP._script;\r
- if( s && s.readyState === 'complete' ){\r
- s.onreadystatechange = X.emptyFunction;\r
- s.onreadystatechange = null;\r
- s.parentNode.removeChild( s );\r
- delete X_TEMP._script;\r
- X_TEMP.onDomContentLoaded && X_TEMP.onDomContentLoaded();\r
- };\r
- };\r
-};\r
-// Re: onLoad doesn't work with Safari?\r
-// http://lists.apple.com/archives/web-dev/2003/Oct/msg00036.html\r
-if( X.UA.WebKit || X.UA.Safari < 3 ){ // sniff\r
- X.Timer.add( 16, function(){\r
- if( !X_TEMP.onDomContentLoaded ) return X_Callback_UN_LISTEN;\r
- if( document.readyState === 'loaded' || document.readyState === 'complete' ) return X_TEMP.onDomContentLoaded();\r
- });\r
-};\r
-\r
-/* for other browsers */\r
-X.ViewPort.listenOnce( 'load', X_TEMP.onDomContentLoaded );\r
-\r