- X.UA.IE && X.UA.IE < 9 ?\r
- X.Timer.add( 200, resize ) :\r
- X.Dom.Node._window.listen( 'resize', resize ); \r
- X.Dom.readyState = X.Dom.Event.XDOM_READY;\r
- X.Dom.asyncDispatch( 0, { type : X.Dom.Event.XDOM_READY, w : size[ 0 ], h : size[ 1 ] } );\r
- } );\r
-\r
- return X.Callback.UN_LISTEN;\r
- },\r
-\r
- getSize :\r
- X.UA.IE ?\r
- new Function( 'return[X.Dom._root.clientWidth,X.Dom._root.clientHeight]' ) :\r
- new Function( 'return[window.innerWidth,window.innerHeight]' ),\r
- getScrollPosition :\r
- window.pageXOffset !== undefined ?\r
- new Function( 'return[window.pageXOffset,window.pageYOffset]' ) :\r
- window.scrollLeft !== undefined ?\r
- new Function( 'return[window.scrollLeft,window.scrollTop]') :\r
- new Function( 'return[X.Dom._root.scrollLeft,X.Dom._root.scrollTop]' ),\r
- getDocumentSize : function(){\r
- // Opera は互換モードでは document.body.scrollHeight、標準モードでは document.documentElement.scrollHeight でページの高さが取れる。と思ってたんだけど、例外があった。\r
- // http://orera.g.hatena.ne.jp/edvakf/20100515/1273908051\r
- return [\r
- X.Dom._root.scrollWidth || X.Dom._root.offsetWidth,\r
- X.Dom._root.scrollHeight || X.Dom._root.offsetHeight\r
- ];\r
- }\r
- }\r
- );\r
-\r
-})( window, document );\r
-\r
-X.Dom.cleanupTagNames = 'noscript,noframes,comment,!,noembed,nolayer'.split( ',' );\r
-X.Dom.skipCleanupTagNames = 'pre,textarea,code,kbd,samp,xmp,plaintext,listing'.split( ',' );\r
+ Node._window.unlisten();\r
+ Node._document.unlisten();\r
+ Node._html._actualRemove( true );\r
+ break;\r
+ case 'visibilitychange' :\r
+ X.Dom.dispatch( { type : ( X.Dom.activate = document[ 'hidden' ] ) ? X.Dom.Event.VIEW_DEACTIVATE : X.Dom.Event.VIEW_ACTIVATE } );\r
+ break;\r
+ case 'webkitvisibilitychange' :\r
+ X.Dom.dispatch( { type : ( X.Dom.activate = document[ 'webkitHidden' ] ) ? X.Dom.Event.VIEW_DEACTIVATE : X.Dom.Event.VIEW_ACTIVATE } );\r
+ break;\r
+ case 'pageshow' :\r
+ case 'focus' :\r
+ X.Dom.activate = true;\r
+ X.Dom.dispatch( { type : X.Dom.Event.VIEW_ACTIVATE } );\r
+ break;\r
+ case 'pagehide' :\r
+ case 'blur' :\r
+ X.Dom.activate = false;\r
+ X.Dom.dispatch( { type : X.Dom.Event.VIEW_DEACTIVATE } );\r
+ break;\r
+ };\r
+ },\r
+\r
+ listen : function( type ){\r
+ if( type <= X.Dom.readyState ){\r
+ /*\r
+ * X.Dom.Event.XDOM_READY 以後に listen した場合の対策\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
+ },\r
+ \r
+ getPointerPosition : function(){\r
+ \r
+ },\r
+ \r
+ /* 要素が視界に入った http://remysharp.com/2009/01/26/element-in-view-event-plugin/ */\r
+ inView : function( elm ){\r
+ \r
+ },\r
+\r
+ _getSize :\r
+ X.UA.IE ?\r
+ new Function( 'return[X.Dom._root.clientWidth,X.Dom._root.clientHeight]' ) :\r
+ new Function( 'return[window.innerWidth,window.innerHeight]' ),\r
+ \r
+ getSize : function(){\r
+ return [ X.Dom.w, X.Dom.h ];\r
+ },\r
+//https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect\r
+//use window.pageXOffset and window.pageYOffset instead of window.scrollX and window.scrollY\r
+//(((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.ScrollLeft == 'number' ? t : document.body).ScrollLeft;\r
+//(((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.ScrollTop == 'number' ? t : document.body).ScrollTop\r
+ \r
+ getDocumentSize : function(){\r
+ // Opera は互換モードでは document.body.scrollHeight、標準モードでは document.documentElement.scrollHeight でページの高さが取れる。と思ってたんだけど、例外があった。\r
+ // http://orera.g.hatena.ne.jp/edvakf/20100515/1273908051\r
+ //http://onozaty.hatenablog.com/entry/20060803/p1\r
+ // Safari2.0.4では標準・互換どちらも document.body\r
+ \r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
+ /*X.UA.Opera ?\r
+ ( document.documentElement && document.documentElement.clientWidth ?\r
+ new Function( 'return[document.documentElement.clientWidth,document.documentElement.clientHeight]' ) :\r
+ new Function( 'return[document.body.clientWidth,document.body.clientHeight]' )\r
+ ) :*/ \r
+ return [\r
+ X.Dom._root.scrollWidth || X.Dom._root.offsetWidth,\r
+ X.Dom._root.scrollHeight || X.Dom._root.offsetHeight\r
+ ];\r
+ },\r
+ \r
+ getScrollPosition :\r
+ window.pageXOffset !== undefined ?\r
+ ( function(){\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
+ return[ window.pageXOffset, window.pageYOffset ];\r
+ } ) :\r
+ window.scrollLeft !== undefined ?\r
+ ( function(){\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
+ return[ window.scrollLeft, window.scrollTop ];\r
+ } ) :\r
+ ( function(){\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
+ // body は Safari2-\r
+ return[ X.Dom._root.scrollLeft || document.body.scrollLeft, X.Dom._root.scrollTop || document.body.scrollTop ];\r
+ } ),\r
+\r
+ getScrollbarSize : function(){\r
+ return [ X.Dom.BoxModel.vScrollbarSize, X.Dom.BoxModel.hScrollbarSize ]; \r
+ } \r
+ }\r
+);\r
+\r
+if( !X.UA.IE || 9 <= X.UA.IE ){\r
+ X.Dom._detectFontSize = function(){\r
+ var size = Node._fontSizeNode._rawNode.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
+ };\r
+ };\r
+};\r
+\r
+/*\r
+ * http://d.hatena.ne.jp/t-uchima/20051003/p1\r
+ * MacIEにはattachEventが一応あるけどwindow.attachEventとdocument.attachEventしかなく他の要素にはattachEventはない。\r
+ */\r
+if( X.UA.MacIE || X.UA.NetFront < 4 ){\r
+ X.Dom.DOM_W3C = true;\r
+ X.Dom.EVENT_DOM0 = true;\r
+} else\r
+if( X.UA.IE4 ){ // ie4 & iemobi4\r
+ X.Dom.DOM_IE4 = true;\r
+ X.Dom.EVENT_DOM0 = true;\r
+} else\r
+if( document.getElementById ){\r
+ X.Dom.DOM_W3C = true;\r
+ if( document.addEventListener ){\r
+ X.Dom.EVENT_W3C = true;\r
+ } else\r
+ if( document.attachEvent ){\r
+ X.Dom.EVENT_IE = true;\r
+ } else {\r
+ X.Dom.EVENT_DOM0 = true;\r
+ };\r
+} else\r
+if( document.all ){\r
+ X.Dom.DOM_IE4 = true;\r
+ X.Dom.EVENT_DOM0 = true;\r
+} else\r
+if( document.layers ){\r
+ \r
+} else {\r
+ \r
+};\r
+\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